home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d19 / dorpch37.arc / DOORPCH.DOC < prev    next >
Text File  |  1991-01-01  |  100KB  |  2,729 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.                             D  O  O  R  P  C  H
  24.                            =====================
  25.  
  26.  
  27.                                 Release 3.7
  28.  
  29.  
  30.                               January 1, 1991
  31.  
  32.  
  33.                               Raymond Clements
  34.                            Copyright (C)1987-1991
  35.  
  36.  
  37.                               2204 Carriage Dr.
  38.                           Owensboro, KY  42301-5823
  39.  
  40.  
  41.                               The Pegasus BBS
  42.  
  43.                            Node 1 - (502)684-9855
  44.  
  45.                          Node 2 - (502)684-9871 HST
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.                            Table  Of  Contents
  75.                           =====================
  76.  
  77.  
  78.      Overview   . . . . . . . . . . . . . . . . . . . . 1
  79.  
  80.      Disclaimer of Liability  . . . . . . . . . . . . . 1
  81.  
  82.      Contents of "ZIP" File   . . . . . . . . . . . . . 2
  83.  
  84.      Features of This Release   . . . . . . . . . . . . 3
  85.  
  86.      Operating Environment  . . . . . . . . . . . . . . 5
  87.  
  88.      Planned Future Enhancements  . . . . . . . . . . . 5
  89.  
  90.      DOORPCH Configuration File . . . . . . . . . . . . 5
  91.  
  92.      DOORs Configuration File . . . . . . . . . . . . . 6
  93.  
  94.      DoorPch Routines . . . . . . . . . . . . . . . . . 6
  95.  
  96.      DoorPch Variables  . . . . . . . . . . . . . . . . 11
  97.  
  98.      DoorPch Macros . . . . . . . . . . . . . . . . . . 24
  99.  
  100.      Structure of a DOOR Program  . . . . . . . . . . . 25
  101.        Include File Usage . . . . . . . . . . . . . . . 26
  102.        Opening and Closing of Files . . . . . . . . . . 26
  103.        Starting a DOOR  . . . . . . . . . . . . . . . . 27
  104.        Terminating a DOOR . . . . . . . . . . . . . . . 27
  105.        Compiling Your DOOR Program  . . . . . . . . . . 27
  106.        Linking Your DOOR Program  . . . . . . . . . . . 28
  107.        Executing Your DOOR Program  . . . . . . . . . . 28
  108.  
  109.      Programming Tips . . . . . . . . . . . . . . . . . 28
  110.        ANSI Color Graphics  . . . . . . . . . . . . . . 28
  111.          Intensity of Text  . . . . . . . . . . . . . . 29
  112.          Blinking Text  . . . . . . . . . . . . . . . . 29
  113.          Foreground/Background Colors . . . . . . . . . 29
  114.  
  115.        Printing Output  . . . . . . . . . . . . . . . . 29
  116.          Printing a Complete Line . . . . . . . . . . . 29
  117.          Printing a Partial Line  . . . . . . . . . . . 30
  118.          Printing a Line & Get a Response . . . . . . . 30
  119.          Printing With TABs . . . . . . . . . . . . . . 30
  120.  
  121.        Ringing the Bell . . . . . . . . . . . . . . . . 30
  122.        Adding Color the EASY Way  . . . . . . . . . . . 31
  123.        Sending ANSI Music . . . . . . . . . . . . . . . 31
  124.        Bell, Alarm or Local Music Toggles . . . . . . . 32
  125.        Clearing the Screen  . . . . . . . . . . . . . . 32
  126.        BASIC Keywords . . . . . . . . . . . . . . . . . 32
  127.        High Scores & Bulletins  . . . . . . . . . . . . 32
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.      SysOp Information  . . . . . . . . . . . . . . . . 33
  141.        Lines 24 & 25 of the Display . . . . . . . . . . 33
  142.        Extended Key Meanings  . . . . . . . . . . . . . 34
  143.  
  144.      DoorPch History  . . . . . . . . . . . . . . . . . 35
  145.  
  146.      DoorPch Credits  . . . . . . . . . . . . . . . . . 35
  147.  
  148.      Reporting Problems . . . . . . . . . . . . . . . . 36
  149.  
  150.      User Enhancement Requests  . . . . . . . . . . . . 37
  151.  
  152.      DoorPch Registration . . . . . . . . . . . . . . . 37
  153.  
  154.      Trademarks / Copyrights  . . . . . . . . . . . . . 38
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.       DoorPch - Version 3.7
  201.      User's Guide for DOOR Programs
  202.  
  203.  
  204.  
  205.  
  206.      Overview
  207.      ========
  208.  
  209.      DoorPch  is a set of Basic and Assembler language routines  which
  210.      facilitate  the creation of a  multi-BBS  DOOR  program.  All the
  211.      logic   to  monitor  the  carrier,  input  and  output  for   the
  212.      communications  port  is included in the code.  Full  ANSI  color
  213.      graphics and  ANSI music capabilities are also included.  All you
  214.      must  do  is follow some simple interface requirements  and  then
  215.      either  do a GOSUB or CALL to perform the required function.  The
  216.      code also maintains an informative display on lines 24 and 25  of
  217.      the  local  console, closely, and in some  cases,  exactly,  like
  218.      PCBoard. The options to turn the display, bell and alarm on & off
  219.      are  also at your disposal.  Now, after reading this you probably
  220.      are saying "Huh ?" or "Sure!".  Really!  Its very simple....
  221.  
  222.      DoorPch  is  used by more DOORs than any other  software  of  its
  223.      kind.  So  join  the fun of writing  DOORs.  You,  and  countless
  224.      others,  will benefit from your efforts.  There  are  imitations,
  225.      look-a-likes and competition from other less functional software,
  226.      but there is only one DoorPch!
  227.  
  228.  
  229.      Disclaimer of Liability
  230.      =======================
  231.  
  232.      We assume no liability for its use.  You may copy it and share it
  233.      with  others  so  long  as the code  and  the  documentation  are
  234.      distributed together.  You may include this logic in as many DOOR
  235.      programs   as  you  wish.   If  you  have  any  suggestions   for
  236.      improvements to this code, reply to the address below or call our
  237.      BBSs   at   the  number  stated  above.   Please   complete   the
  238.      Registration form at the end of this documentation.  This program
  239.      and  all  its INCLUDE and Library files are copyrighted.   It  is
  240.      unlawful  to  disassemble  or  otherwise  decode  or  misuse  the
  241.      software contained herein.  It is for your use in creating  DOORs
  242.      and  may not be altered in an way.  You may not charge a fee  for
  243.      its  use  or sell it.  DORPCH37.ZIP is to be distributed  in  its
  244.      ORIGINAL ZIP format and contain ALL the original files.
  245.  
  246.             Send inquires to:   Raymond Clements
  247.                                 DoorPch Info
  248.                                 2204 Carriage Dr.
  249.                                 Owensboro, KY  42301-5823
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.                                      Page 1
  263.  
  264.  
  265.  
  266.       DoorPch - Version 3.7
  267.      User's Guide for DOOR Programs
  268.  
  269.  
  270.  
  271.  
  272.      Contents Of "ZIP" File
  273.      ======================
  274.  
  275.      The following files should be in DORPCH37.ZIP:
  276.  
  277.       1.  BRUN30.EXE     Microsoft QuickBASIC 3.0 run-time library. It
  278.                          has been patched to hold DTR.  See QBDTRPCH.
  279.  
  280.       2.  CLE.BAT        Batch  file  for compiling &  Linking  sample
  281.                          DOOR program EXAMPLE.BAS.
  282.  
  283.       3.  COMPILE.BAT    Batch file to COMPILE your source module with
  284.                          library DORPCH37.EXE.
  285.  
  286.       4.  DOORPCH.BEG    INCLUDE   this   code   AFTER   the   INCLUDE
  287.                          of DOORPCH.USR.
  288.  
  289.                          Note:  Some  variables must be set  prior  to
  290.                          this INCLUDE. See README.NOW and DOCS.
  291.  
  292.       5.  DOORPCH.DOC    This  documentation.  For use  in  developing
  293.                          multi-BBS DOORs.
  294.  
  295.       6.  DOORPCH.CFG    Configuration file for DoorPch which will be
  296.                          used by all it's DOOR programs.
  297.  
  298.       7.  DOORPCH.END    INCLUDE this code at the END of  your program.
  299.                          If  you are upgrading an earlier DOOR you may
  300.                          still  use  this  code.  It  replaced the old
  301.                          GETIN2.ASC.
  302.  
  303.       8.  DOORPCH.USR    COMMON  variables.  INCLUDE this code at  the
  304.                          BEGINNING of your program.
  305.  
  306.       9.  DOORNAME.CF1   An example configuration file for single node
  307.                          operation.
  308.  
  309.      10.  DOORNAME.CF2   An  example configuration file for Node 2  if
  310.                          required.
  311.  
  312.      11.  DORPCH37.EXE   You  MUST  compile  your DOOR  using  the  /L
  313.                          DORPCH37.EXE  parameter.  The logic  in  this
  314.                          library replaced most of the old GETIN2.
  315.  
  316.      12.  DP37UTIL.EXE   The utility  used to  setup  each DOOR's .SCR
  317.                          and/or .LDR files.  It can  also  be  used to
  318.                          purge names  from those files.  For a list of
  319.                          commands use: DP37Util /HELP.
  320.  
  321.      13.  EXAMPLE.BAS    A nice example DOOR (source code).
  322.  
  323.      14.  EXAMPLE.EXE    The compiled ready-to-run EXAMPLE Door.
  324.  
  325.      15.  EXAMPLE.TXT    NON-GRAPHICS file for EXAMPLE.EXE
  326.  
  327.  
  328.                                      Page 2
  329.  
  330.  
  331.  
  332.       DoorPch - Version 3.7
  333.     User's Guide for DOOR Programs
  334.  
  335.  
  336.  
  337.  
  338.      16.  EXAMPLEG.TXT   GRAPHICS file for EXAMPLE.EXE
  339.  
  340.      17.  EXDOOR.BAT     A typical DOOR batch file.
  341.        
  342.      18.  LINKER.BAT     Batch file to LINK your .OBJ into an .EXE.
  343.  
  344.      19.  QBDTRPCH.ZIP   Info  for  DEBUG  patch for  DTR  control  in
  345.                          QuickBASIC.
  346.  
  347.      20.  README.NOW     If included, should be READ right away!
  348.  
  349.      21.  SYSOP.DOC      You are to include this documentation  within
  350.                          the  ZIP file containing your  DOOR  program.
  351.                          The  SysOp  will  need  this  information  to
  352.                          understand   how  to  interface  with   doors
  353.                          utilizing DOORPCH.
  354.  
  355.      22.  CHANGES.DOC    This  file contains a list  of  changes/fixes
  356.                          made   to  DoorPch  since  Version  3.1   was
  357.                          released.   This  file  should  be  carefully
  358.                          reviewed  before  using any  new  release  of
  359.                          DoorPch.
  360.  
  361.  
  362.      Features of This Release
  363.      ========================
  364.  
  365.      Does NOT require the use of CTTY!!
  366.  
  367.      Constant monitoring of COM port.  Returns to BBS if carrier lost.
  368.  
  369.      Supports Monochrome and Color BBS systems.
  370.  
  371.      Supports  all  the  standard COLORs in  ANSI.SYS  including  High
  372.      Intensity and Blinking text.
  373.  
  374.      Supports the use of ANSI Music.
  375.  
  376.      Informative line 24/25 display similar to PCBoard.
  377.  
  378.      Supports the following BBS interface files:
  379.      DOOR.SYS, PCBOARD.SYS/PCBOARD.DAT/USERS, SFDOORS.DAT,
  380.      CALLINFO.BBS, DORINFO#.DEF, and CHAIN.TXT
  381.  
  382.      Compatible  with  Networks using SHARE.  A node blocker  routine,
  383.      limits DOOR programs that don't/can't run on  two nodes to run on
  384.      one node at a time.
  385.  
  386.      Easy  to interface with.  Minimal information required  from your
  387.      DOOR program.
  388.  
  389.      DOOR can run in LOCAL mode as well as use the COM port.
  390.  
  391.  
  392.  
  393.  
  394.                                      Page 3
  395.  
  396.                                      
  397.  
  398.       DoorPch - Version 3.7
  399.      User's Guide for DOOR Programs
  400.  
  401.  
  402.  
  403.  
  404.      Screen  positioning (Col & Row) allow DOORS to update the  screen
  405.      of  the caller rather than scrolling text (ANSI codes).  This  is
  406.      very useful for DOORs which display a "board" on the screen.
  407.  
  408.      Allows SysOp to CHAT with  caller in DOOR  (F10).  Supports  word
  409.      wrapping at end of line similarly to BBS.  All CHAT time credited
  410.      so caller does not lose any time.
  411.  
  412.      SysOp can exit to DOS from inside the DOOR and return (F5).
  413.  
  414.      Includes  a  "standard"  high  score  routine  for  tracking  and
  415.      maintaining a bulletin for each DOOR game.
  416.  
  417.      Provides  the ability to "read" GRAPHICS and  NON-GRAPHICS  files
  418.      from disk to display to a caller.  These files may be a menu  for
  419.      your door, perhaps a logon or logoff screen, etc.  It's very easy!
  420.  
  421.      Allows the use of ALT-N (SysOp NEXT ON).
  422.  
  423.      Allows the use of ALT-X (Exit to DOS after caller).
  424.  
  425.      Provides Music Toggle (F3).
  426.  
  427.      Provides Alarm Toggle (F4).
  428.  
  429.      Provides Graphics Toggle (F6).
  430.  
  431.      Provides Bell Toggle (F7).
  432.  
  433.      Allows SysOp to force the caller to return to BBS (F8).
  434.  
  435.      Ability to turn display on and off (F9).
  436.  
  437.      Ability to increase  or  decrease a caller's time with the Up and
  438.      Down Arrow KEYS.
  439.  
  440.      Supports up to  115,200  BPS  modems including  Hayes  V  Series.
  441.      Also support CTS checking (MNP flow control).
  442.  
  443.      Reduces caller's time if an Event is scheduled.
  444.  
  445.      Monitors  soft  errors  and  reports  the errors  to  the  SysOp.
  446.      Results  are  written to the local console and to  a  disk  file:
  447.      DOORPCH.ERR (This will be in the same directory as DORPCH37.EXE.)
  448.  
  449.      Error  free!  Well, maybe not, but we  strive  to  attain  "zero-
  450.      defects".
  451.  
  452.      Cost is minimal compared to the benefits.
  453.  
  454.      Last, but not least, Compatible with PCBoard v14.x, GAP v4.x, 
  455.      RBBS-PC v17.x, WILDCAT! v2.x, Spitfire v3.x.
  456.  
  457.  
  458.  
  459.  
  460.                                      Page 4
  461.  
  462.  
  463.  
  464.       DoorPch - Version 3.7
  465.      User's Guide for DOOR Programs
  466.  
  467.  
  468.  
  469.  
  470.      Operating Environment
  471.      =====================
  472.  
  473.      DoorPch supports COM1 and COM2 only!!
  474.  
  475.      The use of CTTY is NOT necessary when this code is used.
  476.  
  477.      The memory addresses used by this code are those used by the  IBM
  478.      PC and "true" compatibles such as AT&T.  This code was  developed
  479.      for  Microsoft  QuickBASIC 3.0.  It may NOT be  used  with  other
  480.      versions of QuickBASIC.  QuickBASIC 4.0 was NOT used to create  a
  481.      LIB  file  due  to problems detected in its use  on  80286  CPU's
  482.      running multi-tasking software (DoubleDOS & Taskview).
  483.  
  484.      Be  sure  to  either  include a  (patched  for  DTR)  version  of
  485.      BRUN30.EXE  in  your  DOOR ZIP file or provide a  way  for  other
  486.      SysOps to get a version from you.
  487.  
  488.      The DORPCH37.EXE  logic  will  detect a  NOCARRIER  condition and
  489.      branch back to the BBS  eliminating the  need for WATCHDOG.  This
  490.      exact code is currently used in  several DOOR programs on my BBS.
  491.  
  492.  
  493.      Planned Future Enhancements
  494.      ===========================
  495.  
  496.      Provide "full" support for both Quick Basic Version 3.0 & 4.x.
  497.  
  498.      We  continue  to use QuickBASIC 3.0 simply because we  had  found
  499.      many  problems using the QuickBASIC 4.x compilers.  The  problems
  500.      did  not  materialize until we operated TWO DOORS  compiled  with
  501.      DoorPch (using QuickBASIC 4.0) in both partitions under DoubleDOS
  502.      3.1V  and  4.0.  A single DOOR would operate  fine.  However  TWO
  503.      doors  caused the system to "hang".
  504.  
  505.      We will look into all the ramifications of these compilers.  If a
  506.      solution can be found, we will provide a QuickBASIC 4.x LIB  file
  507.      which  will  allow you to static LINK with the  libraries  rather
  508.      than  the  current dynamic link provided by  the  QuickBASIC  3.0
  509.      environment.
  510.  
  511.  
  512.      DOORPCH Configuration File
  513.      ==========================
  514.  
  515.      File Name:  DOORPCH.CFG
  516.  
  517.      The data in this file lets you setup DoorPch for your BBS.  Place
  518.      this file in the  same  sub-directory as the  DORPCH37.EXE  file.
  519.  
  520.      Line #1=>  PCBoard          (The type of BBS software used)
  521.      Line #2=>  The Pegasus BBS  (The BBS' name)
  522.      Line #3=>  Raymond          (The first name of the SysOp)
  523.  
  524.  
  525.  
  526.                                      Page 5
  527.  
  528.  
  529.  
  530.       DoorPch - Version 3.7
  531.      User's Guide for DOOR Programs
  532.  
  533.  
  534.  
  535.  
  536.      Line #4=>  Clements         (The last name of the SysOp)
  537.      Line #5=>  Y                (Y or N) Do you have DOS' Share.exe
  538.                                           loaded?
  539.      Line #6=>  Y                (Y or N) Do you want to use PCBoard's
  540.                                           "@" macros?
  541.      Line #7=>  Y                (Y or N) Do you want to hear music
  542.                                           when caller alarm is on?
  543.  
  544.  
  545.      DOORs Configuration File
  546.      ========================
  547.  
  548.      File Name:  DOORNAME.CFn, where n is 1 or 2.
  549.  
  550.      The data in this file tells DoorPch where the BBS file is located.
  551.      Place  this  file in  the  same  sub-directory  (default)  as the
  552.      executable  DOOR  program.  The data in  each record  MUST  begin
  553.      in column 1.  This  file is OPEN'ed as  file #1.  It is left OPEN
  554.      for your  convenience.
  555.  
  556.      You  may  add additional records beginning at record # 6  if  you
  557.      wish to pass additional information that your program may need to
  558.      run.  If you do not need  anything  additional  in this file, you
  559.      should  CLOSE #1  following the  $INCLUDE DOORPCH.BEG  statement:
  560.  
  561.      Line #1=>  C:\PCB\PCBOARD.SYS  (The location for the BBS I/O file)
  562.      Line #2=>  The Pegasus BBS     (The BBS' name)
  563.      Line #3=>  Raymond             (The first name of the SysOp)
  564.      Line #4=>  Clements            (The last name of the SysOp)
  565.  
  566.      If the DOOR uses DoorPch's Door Security System then:
  567.  
  568.      Line #5=>  Sondra Clements     (The donor of the DOOR               
  569.                                      or left blank if not used)
  570.  
  571.  
  572.      DoorPch Routines
  573.      ================
  574.  
  575.      The  following  list  outlines  the  various  routines  that  are
  576.      available in DoorPch v3.7 for your usage:
  577.  
  578.  
  579.      Subroutine Name               Subroutine Usage
  580.      ------------------------      -----------------------------------
  581.  
  582.      10000  (label)                The   Error  routine.  You   should
  583.      or                            insure  that if you change  the  ON
  584.      ERR.ROUTINE (label)           ERROR GOTO xxx statement that it is
  585.                                    restored to 10000.
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.                                      Page 6
  593.  
  594.  
  595.  
  596.       DoorPch - Version 3.7
  597.      User's Guide for DOOR Programs
  598.  
  599.  
  600.  
  601.  
  602. |    ALIAS                         A  CALL  to this  SUB  will get the
  603.                                    caller's alias if they already have
  604.                                    one or  ask  them  for  one if they
  605.                                    don't already have one.
  606.  
  607.      CAPS                          A  CALL  to  this  subroutine  will
  608.                                    cause anything in ARG$ to be put in
  609.                                    first  letter  caps.  IE:   DOORPCH
  610.                                    would change to DoorPch.
  611.  
  612.      CENT(anystring$)              Leading  spaces  are  appended   to
  613.                                    anystring$  so  as  to  center  the
  614.                                    string for output.
  615.  
  616.      COLOR.CHK                     A  CALL to this routine will  cause
  617.                                    LN$  to  be outputted  in  a  color
  618.                                    format.  The  format  is   anything
  619.                                    contained    between   the    (,<,[
  620.                                    and ],>,) char will be a  different
  621.                                    foreground  color.  Either  red for
  622.                                    numbers, cyan for uppercase text or
  623.                                    green for lowercase text.
  624.  
  625.      CLR.SCRN                      Do NOT do a CLS or send CHR$(12) to
  626.                                    the  COM  port.  Rather do  a  CALL
  627.                                    CLR.SCRN.  The Lines 24 and 25 will
  628.                                    then be refreshed on the screen.
  629.  
  630.      CVTTIME                       This  routine will call  GETTIME  &
  631.                                    FORMATTIME    to    perform     the
  632.                                    conversion.
  633.  
  634. |    DELAY.TIME(D.TIME#)           Call  this  routine  and  pass   an
  635.                                    integer  in  order  to  generate  a
  636.                                    delay expressed in seconds.
  637.                                    (ie. D.TIME# = 1 means 1 second and
  638.                                    D.TIME# = 10.5 means 10.5 seconds)
  639.  
  640. |    DELAY.TIME.BAUD(D.TIME#)      Call  this  routine  and  pass   an
  641.                                    integer  in  order  to  generate  a
  642.                                    delay  expressed in  seconds.  This
  643.                                    delay should be  used to  help with
  644.                                    synchronization  between the  local
  645.                                    BBS screen and  the remote caller's
  646.                                    screen.
  647.  
  648.      ENTER                         A   call  to  this   routine   will
  649.                                    generate   a  "Press   <ENTER>   to
  650.                                    continue.." and wait for a CR.
  651.  
  652.      EXITG                         Call  this  routine  when  you  are
  653.                                    ready   to  terminate   your   DOOR
  654.                                    program.
  655.  
  656.  
  657.  
  658.  
  659.                                      Page 7
  660.  
  661.  
  662.  
  663.       DoorPch - Version 3.7
  664.      User's Guide for DOOR Programs
  665.  
  666.  
  667.  
  668.  
  669.      FORMATTIME                    Using HOURS% and MINUTES% this  SUB
  670.                                    will  format string DISPTIME$  with
  671.                                    the format HH:MM.
  672.  
  673.      GET.DAY(TDATE$,DAY%)          A  call here will convert any  date
  674.                                    put in TDATE$ to the day it is from
  675.                                    the  beginning  of  the  year   and
  676.                                    returned  in DAY%.  TDATE$  format:
  677.                                    DD/MM/YYYY.
  678.  
  679.      GET.INKEY                     This  SUB closely emulates  BASIC's
  680.                                    INKEY$ command.  It looks for a key
  681.                                    on the COM port or local  keyboard.
  682.                                    It  stores the last key entered  in
  683.                                    USR.KY$.  It does NOT print to  any
  684.                                    device nor does it update ARG$. The
  685.                                    DOOR  author  must  keep  track  of
  686.                                    "keyboard  timeouts"  and  printing
  687.                                    the output, if necessary.
  688.  
  689.      GET.KEY                       CALL  to this subroutine  when  you
  690.                                    wish a character input WITHOUT  the
  691.                                    caller pressing  RETURN!  Character
  692.                                    is NOT echoed.
  693.  
  694.      GET.KEYECHO                   Performs   the  same  function   as
  695.                                    GET.KEY  but echoes  the  character
  696.                                    to the caller and the local screen.
  697.  
  698.      GET.KEYLOOP                   This  SUB "looks" for input.  If  a
  699.                                    key  was entered it will be  placed
  700.                                    in   USR.KY$  and  echoed  to   the
  701.                                    caller.  If NO key was entered then
  702.                                    USR.KY$  will  be empty.   The  key
  703.                                    entered will be concatenated to the
  704.                                    end   of  ARG$.   ARG$  should   be
  705.                                    cleared prior to CALLing this  SUB.
  706.                                    This  routine allows you  to  check
  707.                                    for input and continue  processing.
  708.                                    You must keep track of the  callers
  709.                                    "keyboard  time"  to be  sure  they
  710.                                    have not fallen asleep!
  711.  
  712. |    GET.PLAYER2                   CALL  this  SUB to  get the  second
  713.                                    player's score from the  high score
  714.                                    file without showing them the score
  715.                                    file.
  716.  
  717. |    GET.SCORE                     CALL this  SUB to get the  caller's
  718.                                    score  from  the  high  score  file
  719.                                    without showing them the score file.
  720.  
  721.      GETTIME                       Call   this   SUB  to   obtain  the
  722.                                    following variables:
  723.  
  724.                                    HOURS%    - the current hour
  725.                                    MINUTES%  - the current minute
  726.                                    SECONDS%  - the current second
  727.                                    SINCEMID# - seconds since midnight
  728.  
  729. |    HANGUP                        Drops carrier on the caller.
  730.  
  731.      HIGH.SCORE                    This  is a standardized HIGH  SCORE
  732.                                    routine.  The  following  variables
  733.                                    are important in here:
  734.  
  735.                                    HSCR#, FIRST$, LAST$, ALIAS.FIRST$,
  736.                                    ALIAS.LAST$, EXTRA%, EXTRA1.NAME$,
  737.                                    EXTRA1$, EXTRA2.NAME$, EXTRA2$,
  738.                                    EXTRA3.NAME$, EXTRA3$, SORT%,
  739.                                    ONCE%, DOORPCH.SCORES%, RUNG%,
  740.                                    POINTS.NAME$, SCORES.NAME$, PROGB$,
  741.                                    LAST.DATE.PLAYED$
  742.  
  743.  
  744.  
  745.                                      Page 8
  746.  
  747.  
  748.  
  749.       DoorPch - Version 3.7
  750.      User's Guide for DOOR Programs
  751.  
  752.  
  753.  
  754.  
  755.      INITIALIZE                    The  DOORPCH.BEG  logic  will  CALL
  756.                                    this   subroutine   to   initialize
  757.                                    DORPCH37.EXE (and your DOOR).
  758.  
  759.      IN.PUT                        CALL  to this  SUB  to  output  the
  760.                                    contents  of  LN$.  This  SUB  then
  761.                                    waits  for  the  caller  to respond
  762.                                    with  input  which  is  returned in
  763.                                    in ARG$.  This  SUB is used to  ask
  764.                                    a caller for a response.
  765.  
  766. |    JULIAN.TO.MONTH.DAY.YEAR      This SUB converts the  julian  date
  767.                                    into the proper month, day and year.
  768.  
  769.      LCONV(string)                 Will   convert  "string"   to   all
  770.                                    lowercase characters.
  771.  
  772.      LEFTTRUN(string)              Will  truncate all  leading  spaces
  773.                                    from "string".
  774.  
  775. |    MONTH.DAY.YEAR.TO.AGE         This SUB  converts the  month,  day
  776.                                    and year into the age.
  777.  
  778. |    MONTH.DAY.YEAR.TO.JULIAN      This SUB  converts the  month,  day
  779.                                    and year into the julian date.
  780.  
  781.      MORE                          A CALL to MORE will output a prompt
  782.                                    and  waits for a CR.  Check  for  a
  783.                                    "E"  in ARG$.  If found then  cause
  784.                                    your output to stop.
  785.  
  786.      MUSICG                        CALL  to this subroutine to  output
  787.                                    the contents of MUSIC$. MUSIC$ MUST
  788.                                    be filled with valid notes, pauses,
  789.                                    timing, and octave commands.
  790.  
  791.      NAMEG                         Any  true name put in ARG$ will  be
  792.                                    converted to proper case.
  793.  
  794.      OUT.NCR                       CALL  to this subroutine to  output
  795.                                    the  contents of LN$.   The  CURSOR
  796.                                    will remain at the end of the line.
  797.                                    A CR & LF will NOT be sent.
  798.  
  799.      OUT.PUT                       CALL  to this subroutine to  output
  800.                                    the contents of LN$.
  801.  
  802. |    OUT.PUTS(anynumber%)          CALL  to this SUB  to send multiple
  803.                                    CRLFs.
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.                                      Page 9
  812.  
  813.  
  814.  
  815.       DoorPch - Version 3.7
  816.      User's Guide for DOOR Programs
  817.  
  818.  
  819.  
  820.  
  821. |    PRINT.USING                   CALL  this  SUB to put the contents
  822.                                    of   LN$   into   the   format   of
  823.                                    PRINT.USING$ by  specifing  SYMBOL$
  824.                                    equals either "$", "!", "%", or "#".
  825.                                    This  SUB  is   used  like  BASIC's
  826.                                    Print Using routine.
  827.  
  828. |    PUT.PLAYER2                   CALL  this  SUB to  put the  second
  829.                                    player's  score back into the  high
  830.                                    score file without showing them the
  831.                                    score file.  (This  SUB  should not
  832.                                    be used  after a  CALL HIGH.SCORE.)
  833.                                    
  834.  
  835. |    PUT.SCORE                     CALL this SUB  to put the  caller's
  836.                                    score back into the high score file
  837.                                    without showing them the score file.
  838.                                    (This SUB  should not be used after
  839.                                    a CALL HIGH.SCORE.)
  840.  
  841. |    READ.TXT(color$,mono$)        CALL this SUB with the names of the
  842.                                    files to be displayed to the caller.
  843.                                    This SUB will  first  look  for the
  844.                                    ANSI color filename (ie. COLOR$) if
  845.                                    the  caller  is  in  graphics  mode
  846.                                    unless  DoorPch has been configured
  847.                                    to  support  PCBoard's  "@X"  color
  848.                                    macros.  If the ANSI color filename
  849.                                    does   NOT   exist  then  the  mono 
  850.                                    filename (ie. MONO$).  This feature
  851.                                    is very nice for  displaying menus,
  852.                                    opening  and   closing  screens  to
  853.                                    the callers.  The drive & path  may
  854.                                    also  be  included  with  the  file
  855.                                    name.
  856.  
  857.      RIGHTTRUN(string)             Will  truncate all trailing  spaces
  858.                                    from "string".
  859.  
  860. |    SHOW.SCORE                    CALL  this  SUB to  show  the  high
  861.                                    score file.
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.                                      Page 10
  878.  
  879.  
  880.  
  881.       DoorPch - Version 3.7
  882.      User's Guide for DOOR Programs
  883.  
  884.  
  885.  
  886.  
  887. |    STACKED.IN.PUT                CALL  to this  SUB  to  output  the
  888.                                    contents  of  LN$.  This  SUB  then
  889.                                    waits  for  the  caller  to respond
  890.                                    with  input  which  is  returned in
  891.                                    in ARG$.  This  SUB is used to  ask
  892.                                    a  caller  for  multiple responses.
  893.                                    The  caller  may   stack   multiple
  894.                                    commands by separating  them with a
  895.                                    space   or   semi-colon.   Repeated
  896.                                    calls to this SUB retrieve commands
  897.                                    from the stack, one at  a time, and
  898.                                    prints it to  the screen simulating
  899.                                    the player actually entering in the
  900.                                    commands one at a time  and returns
  901.                                    it in the ARG$.
  902.  
  903. |    SWAP.PLAYERS                  CALL this SUB to  swap the caller's
  904.                                    and the second player's info in the
  905.                                    score file.
  906.  
  907.      TRUN(any string)              CALL   this  routine  to  cause   a
  908.                                    truncations  of ALL leading  spaces
  909.                                    as  well as all trailing spaces  in
  910.                                    the passed parameter string.
  911.  
  912.      UCONV(string)                 Will   convert  "string"   to   all
  913.                                    uppercase characters.
  914.  
  915.      All non documented calls are at your own risk, and may change at
  916.      anytime.
  917.  
  918.  
  919.      DoorPch Variables
  920.      =================
  921.  
  922.      The following variables are used to pass information between your
  923.      DOOR program and DoorPch:
  924.  
  925.      Variable                      Definition
  926.      -----------------------       ----------------------------------
  927.  
  928.      ALIAS.FIRST$                  If the  caller  is  using an  alias    
  929.                                    this  will  be the  caller's  FIRST
  930.                                    name.
  931.  
  932.      ALIAS.LAST$                   Same as above except LAST name.
  933.  
  934. |    ALIAS.NAME$                   Same as above except FIRST and LAST
  935.                                    name.
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.                                      Page 11
  944.  
  945.  
  946.  
  947.       DoorPch - Version 3.7
  948.      User's Guide for DOOR Programs
  949.  
  950.  
  951.  
  952.  
  953. |    ANSI%                         Notifies DoorPch that the door will
  954.                                    require  ANSI   cursor  positioning
  955.                                    codes,  if ANSI% = 1.  A value of 0
  956.                                    is the default.
  957.  
  958. |    ANSI.COLOR%                   Notifies DoorPch that the door will
  959.                                    require   ANSI   color   codes,  if
  960.                                    ANSI.COLOR% = 1.  A value of  0  is
  961.                                    the default.
  962.  
  963. |    ANSI.MUSIC%                   Notifies DoorPch that the door will
  964.                                    require   ANSI   music   codes,  if
  965.                                    ANSI.MUSIC% = 1.  A value of  0  is
  966.                                    the default.
  967.  
  968.      ARG$                          This   string  contains  the   data
  969.                                    returned   by   a   CALL    IN.PUT,
  970.                                    CALL GET.KEY  or  CALL GET.KEYECHO.
  971.  
  972. |    AUTHOR.ADDRESS1$              If  USE.DSS% = 1  and  the door  is
  973.                                    either   a  "SHAREWARE DEMO"  or  a
  974.                                    "LOCAL ONLY DEMO"  then this is the
  975.                                    first line of the author's  address
  976.                                    shown on the door's closing screen.
  977.  
  978. |    AUTHOR.ADDRESS2$              If  USE.DSS% = 1  and  the door  is
  979.                                    either   a  "SHAREWARE DEMO"  or  a
  980.                                    "LOCAL ONLY DEMO"  then this is the
  981.                                    second line of the author's address
  982.                                    shown on the door's closing screen.
  983.  
  984. |    AUTHOR.CITY.STATE$            If  USE.DSS% = 1  and  the door  is
  985.                                    either   a  "SHAREWARE DEMO"  or  a
  986.                                    "LOCAL ONLY DEMO"  then this is the
  987.                                    author's  city  and state  shown on
  988.                                    the door's closing screen.
  989.  
  990. |    AUTHOR.NAME$                  If  USE.DSS% = 1  and  the door  is
  991.                                    either   a  "SHAREWARE DEMO"  or  a
  992.                                    "LOCAL ONLY DEMO"  then this is the
  993.                                    author's  name  shown on the door's
  994.                                    closing screen.
  995.  
  996.      BAUDCONN$                     Contains the baud rate at which the
  997.                                    caller connected to the BBS system.
  998.                                    (The variable is in STRING format.)
  999.  
  1000.      BAUDOPEN$                     Contains the baud rate at which the
  1001.                                    modem was opened by the door.  This
  1002.                                    may  not contain the same value  as
  1003.                                    BAUDCONN$.  (The  variable  is   in
  1004.                                    STRING format.)
  1005.  
  1006.  
  1007.  
  1008.  
  1009.                                      Page 12
  1010.  
  1011.  
  1012.  
  1013.       DoorPch - Version 3.7
  1014.      User's Guide for DOOR Programs
  1015.  
  1016.  
  1017.  
  1018.  
  1019. |    BBSSYS$                       Name of the  BBS  software  used by
  1020.                                    the SysOp running the door program.
  1021.  
  1022.                                    Example:  PCBoard
  1023.  
  1024. |    BBSSYS.FILE$                  Name  of the  BBS  software's  door
  1025.                                    interface file.
  1026.  
  1027.      BELL%                         Notifies  DoorPch to output a  BELL
  1028.                                    tone,  if BELL% = 1.  A value of  0
  1029.                                    will  NOT  output a BELL (Default).
  1030.  
  1031.      BGC%                          Background color
  1032.  
  1033.                                    O for BLACK   (Default)
  1034.                                    1 for RED
  1035.                                    2 for GREEN
  1036.                                    3 for YELLOW
  1037.                                    4 for BLUE
  1038.                                    5 for MAGENTA
  1039.                                    6 for CYAN
  1040.                                    7 for WHITE
  1041.  
  1042. |    BIRTH.DATE$                   The  birthdate  of the  caller  (if
  1043.                                    supported  by  the  BBS  software's
  1044.                                    door interface file).
  1045.  
  1046.      BLINK%                        When  set to 1 all  text  displayed
  1047.                                    will BLINK.  Default is 0.
  1048.  
  1049. |    BYTES.DOWNLOADED.THIS.CALL#   The number of bytes downloaded from
  1050.                                    the BBS this call  (if supported by
  1051.                                    the  BBS software's  door interface
  1052.                                    file).
  1053.  
  1054.      CALLALARM%                    A value of 1 indicates that F7  has
  1055.                                    been toggled.
  1056.  
  1057.      CENTER%                       Will center LN$ when it is OUT.PUT.
  1058.                                    CENTER%  = 1: LN$ =  "Howdy":  CALL
  1059.                                    OUT.PUT
  1060.  
  1061. |    CITY.STATE$                   The  city  and  state of the caller
  1062.                                    (if supported by the BBS software's
  1063.                                    door interface file).
  1064.  
  1065. |    COM.PORT%                     The COM port used by the DOOR.
  1066.  
  1067. |    CONFERENCE.EXITED.FROM$       The  conference the  caller  was in
  1068.                                    when  exiting the  BBS  to the door
  1069.                                    (if supported by the BBS software's
  1070.                                    door interface file).
  1071.  
  1072.  
  1073.  
  1074.  
  1075.                                      Page 13
  1076.  
  1077.  
  1078.  
  1079.       DoorPch - Version 3.7
  1080.      User's Guide for DOOR Programs
  1081.  
  1082.  
  1083.  
  1084.  
  1085. |    CONFERENCE.MEMBER$            The conferences in which the caller
  1086.                                    is a  member  (if supported  by the
  1087.                                    BBS software's door interface file).
  1088.  
  1089. |    D.TIME#                       The  number  of  seconds  to  delay
  1090.                                    when using CALL DELAY.TIME.
  1091.  
  1092.      DAY%                          See below variable TDATE$.
  1093.  
  1094. |    DEFAULT.BBS.COLOR%            The  default  color used by the BBS
  1095.                                    (if supported by the BBS software's
  1096.                                    door interface file).
  1097.  
  1098.      DISPLAY%                      The LOCAL console display.  A value
  1099.                                    of  1 denotes  "on".  A value of  0  
  1100.                                    denotes  "off".
  1101.  
  1102.      DISPTIME$                     Returned by CVTTIME or  FORMATTIME.
  1103.                                    Returns  hours and minutes  in  the
  1104.                                    format HH:MM.
  1105.  
  1106.      DMIN%                         The  number of MINUTES  the  caller
  1107.                                    has remaining in the DOOR.
  1108.  
  1109. |    DOOR.REGISTRATION.FEE$        If  USE.DSS% = 1  and  the door  is
  1110.                                    either   a  "SHAREWARE DEMO"  or  a
  1111.                                    "LOCAL ONLY DEMO"  then this is the
  1112.                                    registration   fee   shown  on  the
  1113.                                    door's closing screen.
  1114.  
  1115. |    DOORPCH.SCORES%               Notifies  DoorPch  the door program
  1116.                                    will    use     DoorPch's    single
  1117.                                    player    high    score    routine,
  1118.                                    if   DOORPCH.SCORES% = 1   or   the
  1119.                                    challenge ladder high score routine
  1120.                                    if DOORPCH.SCORES% = 3.
  1121.  
  1122. |    DOWNLOADS#                    The number of  files the caller has
  1123.                                    downloaded   from   the   BBS   (if
  1124.                                    supported  by  the  BBS  software's
  1125.                                    door interface file).
  1126.  
  1127. |    ERROR.CORRECTING.CONNECTION%  A value of 1 means a connection has
  1128.                                    been established between  two error
  1129.                                    correcting modems.   Default is  0.
  1130.                                    (If supported by the BBS software's
  1131.                                    door interface file.)
  1132.  
  1133. |    EVENT.TIME$                   The  time of  the  BBS's  event  in
  1134.                                    HH:MM  format (if supported by  the
  1135.                                    BBS software's door interface file).
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.                                      Page 14
  1142.  
  1143.  
  1144.  
  1145.       DoorPch - Version 3.7
  1146.      User's Guide for DOOR Programs
  1147.  
  1148.  
  1149.  
  1150.  
  1151. |    EVENT.TIME#                   The  time of  the  BBS's  event  in
  1152.                                    seconds  after  midnight format (if 
  1153.                                    supported  by  the  BBS  software's
  1154.                                    door interface file).
  1155.  
  1156. |    EXPERT$                       If EXPERT$ = "Y" then the caller is
  1157.                                    in expert mode and if EXPERT$ = "N"
  1158.                                    then the caller is in  novice mode.
  1159.                                    (If supported by the BBS software's
  1160.                                    door interface file.)
  1161.  
  1162. |    EXTRA%                        Notifies  DoorPch  how many  of the
  1163.                                    EXTRA   variables  that  have  been
  1164.                                    stored in the  scores file you will
  1165.                                    also want displayed in the bulletin.
  1166.                                    This value may  range from  1 to 3.
  1167.  
  1168. |    EXTRA1$                       The  value  of  the   first   EXTRA
  1169.                                    variable stored in the scores file.
  1170.                                    (The variable is in STRING format.)
  1171.  
  1172. |    EXTRA1.NAME$                  The  name   of  the   first   EXTRA
  1173.                                    variable  which  is  shown  in  the
  1174.                                    scores bulletin.
  1175.  
  1176. |    EXTRA1.NUMERIC%               If  set  to   1   then  EXTRA1$  is
  1177.                                    treated as a numeric variable.
  1178.  
  1179. |    EXTRA2$                       The  value  of  the   second  EXTRA
  1180.                                    variable stored in the scores file.
  1181.                                    (The variable is in STRING format.)
  1182.  
  1183. |    EXTRA2.NAME$                  The  name   of  the   second  EXTRA
  1184.                                    variable  which  is  shown  in  the
  1185.                                    scores bulletin.
  1186.  
  1187. |    EXTRA2.NUMERIC%               If  set  to   1   then  EXTRA2$  is
  1188.                                    treated as a numeric variable.
  1189.  
  1190. |    EXTRA3$                       The  value  of  the   third   EXTRA
  1191.                                    variable stored in the scores file.
  1192.                                    (The variable is in STRING format.)
  1193.  
  1194. |    EXTRA3.NAME$                  The  name   of  the   third   EXTRA
  1195.                                    variable  which  is  shown  in  the
  1196.                                    scores bulletin.
  1197.  
  1198. |    EXTRA3.NUMERIC%               If  set  to   1   then  EXTRA3$  is
  1199.                                    treated as a numeric variable.
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.  
  1207.                                      Page 15
  1208.  
  1209.  
  1210.  
  1211.       DoorPch - Version 3.7
  1212.      User's Guide for DOOR Programs
  1213.  
  1214.  
  1215.  
  1216.  
  1217.      FGC%                          Foreground color.
  1218.  
  1219.                                    0 for BLACK (be careful)
  1220.                                    1 for RED
  1221.                                    2 for GREEN
  1222.                                    3 for YELLOW   (Default)
  1223.                                    4 for BLUE
  1224.                                    5 for MAGENTA
  1225.                                    6 for CYAN
  1226.                                    7 for WHITE
  1227.  
  1228. |    FILES.DOWNLOADED.TODAY#       The number of  files the caller has
  1229.                                    downloaded  from the BBS  today (if
  1230.                                    supported  by  the  BBS  software's
  1231.                                    door interface file).
  1232.  
  1233.      FIRST$                        The first name of the caller.
  1234.  
  1235. |    GEN.DIR$                      The path to the  GEN  directory (if
  1236.                                    supported  by  the  BBS  software's
  1237.                                    door interface file).
  1238.  
  1239.      GRAPHICS%                     When equal to  1  the caller is  in
  1240.                                    GRAPHICS mode.  When equal to 0 the
  1241.                                    caller  is  NOT  in  GRAPHICS mode.
  1242.  
  1243.      HIGH%                         Determines  if  text should  be  in
  1244.                                    HIGH INTENSITY.  Default is 1.  For
  1245.                                    LOW INTENSITY set this to 0.
  1246.  
  1247. |    HOMEPHONE$                    The  home  telephone  number of the
  1248.                                    caller  (if supported  by  the  BBS
  1249.                                    software's  door  interface  file).
  1250.  
  1251.      HOURS%                        Returned  by  CALL  GETTIME.    The
  1252.                                    current HOURS.
  1253.  
  1254.      HSCR#                         Populate this variable with the 1st
  1255.                                    player's  high   score  when  using
  1256.                                    CALL HIGH.SCORE  or  CALL PUT.SCORE
  1257.                                    or CALL SWAP.PLAYERS.
  1258.  
  1259. |    J.AGE#                        The age of the  caller, returned by
  1260.                                    CALL MONTH.DAY.YEAR.TO.AGE. (If the
  1261.                                    BBS software's  door interface file
  1262.                                    supports BIRTH.DATE$.)
  1263.  
  1264. |    J.DAY%                        Populate   this    variable    with
  1265.                                    the       day       when      using
  1266.                                    CALL MONTH.DAY.YEAR.TO.AGE       or
  1267.                                    CALL MONTH.DAY.YEAR.TO.JULIAN.
  1268.  
  1269. |    J.MONTH$                      The name of the month returned when
  1270.                                    using CALL MONTH.DAY.YEAR.TO.JULIAN.
  1271.  
  1272.  
  1273.                                      Page 16
  1274.  
  1275.  
  1276.  
  1277.       DoorPch - Version 3.7
  1278.      User's Guide for DOOR Programs
  1279.  
  1280.  
  1281.  
  1282.  
  1283. |    J.MONTH%                      Populate   this    variable    with
  1284.                                    the      month      when      using
  1285.                                    CALL MONTH.DAY.YEAR.TO.AGE       or
  1286.                                    CALL MONTH.DAY.YEAR.TO.JULIAN.
  1287.  
  1288. |    J.WEEKDAY$                    The    name    of    the    weekday
  1289.                                    returned         when         using
  1290.                                    CALL MONTH.DAY.YEAR.TO.JULIAN.
  1291.  
  1292. |    J.WEEKDAY%                    The  weekday  returned  when  using
  1293.                                    CALL MONTH.DAY.YEAR.TO.JULIAN.
  1294.  
  1295. |    J.YEAR%                       Populate   this    variable    with
  1296.                                    the       year      when      using
  1297.                                    CALL MONTH.DAY.YEAR.TO.AGE       or
  1298.                                    CALL MONTH.DAY.YEAR.TO.JULIAN.
  1299.  
  1300. |    JULIAN#                       The julian date returned when using
  1301.                                    CALL MONTH.DAY.YEAR.TO.JULIAN.
  1302.  
  1303.      LAST$                         Last name of the caller, UPPER case.
  1304.  
  1305. |    LAST.DATE.ON$                 The last date the caller called the
  1306.                                    BBS  (if   supported  by  the   BBS
  1307.                                    software's  door  interface  file).
  1308.  
  1309. |    LAST.DATE.PLAYED$             The last date the caller played the
  1310.                                    door program.
  1311.  
  1312. |    LAST.DIR.DATE$                The  last date  the caller searched
  1313.                                    for new files  (if supported by the
  1314.                                    BBS software's door interface file).
  1315.  
  1316.      LN$                           Populate  this  string  with   your
  1317.                                    output  line.   This data  will  be
  1318.                                    displayed  to the console and  sent
  1319.                                    to the COM port.
  1320.  
  1321. |    LOCAL.MODE%                   If  set  to a  1,  then  the  SysOp   
  1322.                                    entered the  DOOR  via  the  /LOCAL
  1323.                                    parameter.  Default is 0.
  1324.  
  1325. |    LOCAL.MUSIC%                  If  set  to a  1,  then  the  SysOp   
  1326.                                    will be able to  hear music  on the
  1327.                                    local console.
  1328.  
  1329.      LOCALUSR%                     If  set  to a 1, then the  DOOR  is
  1330.                                    running in LOCAL mode. Default is 0.
  1331.  
  1332. |    MAIN.DIR$                     The path to the  MAIN directory (if
  1333.                                    supported  by  the  BBS  software's
  1334.                                    door interface file).
  1335.  
  1336.  
  1337.  
  1338.  
  1339.                                      Page 17
  1340.  
  1341.  
  1342.  
  1343.       DoorPch - Version 3.7
  1344.      User's Guide for DOOR Programs
  1345.  
  1346.  
  1347.  
  1348.  
  1349. |    MAX.DAILY.FILES#              The   maximum   files  allowed  for 
  1350.                                    download  each  day  (if  supported
  1351.                                    by   the    BBS   software's   door
  1352.                                    door interface file).
  1353.  
  1354. |    MAX.DAILY.K#                  The  maximum  kilobytes allowed for 
  1355.                                    download  each  day  (if  supported
  1356.                                    by   the    BBS   software's   door
  1357.                                    door interface file).
  1358.  
  1359.      MINUTES%                      Returned by when using CALL GETTIME.
  1360.                                    The current MINUTES.
  1361.  
  1362.      NAME$                         The name of caller.
  1363.  
  1364. |    NAME.CAPS$                    The  capitalized  name  of  caller.
  1365.  
  1366.      NETWORK%                      If  found  set  to  a  1  then  the
  1367.                                    DOORPCH.CFG   indicates   you   are
  1368.                                    running  in  a network.   Use  this
  1369.                                    variable to determine when  Network
  1370.                                    logic  (i.e.  LOCK,  UNLOCK,  etc.)
  1371.                                    should be used.  IMPORTANT!!
  1372.  
  1373. |    NO.DISPLAY.OFF%               Notifies DoorPch that the door will
  1374.                                    use commands such as SCREEN(##,##), 
  1375.                                    POS(0),  or   CSRLIN  and  requires
  1376.                                    the   DISPLAY  to  be  kept  on  if
  1377.                                    NO.DISPLAY.OFF% = 1.  A value of  0
  1378.                                    is the default.
  1379.  
  1380.      NODE%                         Set  this  variable  to  1  if  you
  1381.                                    require  DoorPch  to  use  LOCKing.
  1382.                                    Default  is 0, and will cause  your
  1383.                                    program  to  run on one node  at  a
  1384.                                    time.
  1385.  
  1386. |    NON.GRAPHICS.ANSI%            If set to  1  the caller is able to
  1387.                                    use  ANSI cursor positioning  codes
  1388.                                    even   though   they    called   in
  1389.                                    non graphics  mode.   Default is  0.
  1390.  
  1391. |    ONCE%                         If set to  1  the scores file  will
  1392.                                    only  allow  each  player  to  have
  1393.                                    their name in it one time.  Default
  1394.                                    is  0,  which  allows the  SysOp to
  1395.                                    choose.
  1396.  
  1397. |    PAGE.LENGTH%                  The  page length  of the caller (if
  1398.                                    supported  by  the  BBS  software's
  1399.                                    door interface file).
  1400.  
  1401.      PAGEBELL%                     A  value  of  1  indicates   F4  is
  1402.                                    toggled ON.
  1403.  
  1404.  
  1405.                                      Page 18
  1406.  
  1407.  
  1408.  
  1409.       DoorPch - Version 3.7
  1410.      User's Guide for DOOR Programs
  1411.  
  1412.  
  1413.  
  1414.  
  1415.      PARAM$                        Any   parameters  passed  to   your
  1416.                                    program will be in this string. The
  1417.                                    parameters  must  start with a "/".
  1418.  
  1419. |    PASSWORD$                     The  password  of  the  caller  (if
  1420.                                    supported  by  the  BBS  software's
  1421.                                    door interface file).
  1422.  
  1423. |    PCB.CALLER.FILE$              The path to and name of the PCBoard
  1424.                                    CALLER# log  (if used on  a PCBoard
  1425.                                    BBS).
  1426.  
  1427. |    PCB.DAT.FILE$                 The path to and name of the PCBoard
  1428.                                    PCBoard.dat  file  (if  used  on  a
  1429.                                    PCBoard BBS).
  1430.  
  1431. |    PCB.USERS.FILE$               The path to and name of the PCBoard
  1432.                                    Users  file  (if used on  a PCBoard
  1433.                                    BBS).
  1434.  
  1435. |    PLAYER2.NAME$                 The  name of the  second  player in
  1436.                                    the door.
  1437.  
  1438. |    PLAYER2.EXTRA1$               The  value  of  the   first   EXTRA
  1439.                                    variable stored  in the scores file
  1440.                                    for the  second player in the door.
  1441.                                    (The variable is in STRING format.)
  1442.  
  1443. |    PLAYER2.EXTRA2$               The  value  of  the   second  EXTRA
  1444.                                    variable stored  in the scores file
  1445.                                    for the  second player in the door.
  1446.                                    (The variable is in STRING format.)
  1447.  
  1448. |    PLAYER2.EXTRA3$               The  value  of  the   third   EXTRA
  1449.                                    variable stored  in the scores file
  1450.                                    for the  second player in the door.
  1451.                                    (The variable is in STRING format.)
  1452.  
  1453. |    PLAYER2.HSCR#                 Populate this variable with the 2nd
  1454.                                    player's  high   score  when  using
  1455.                                    CALL HIGH.SCORE or CALL PUT.PLAYER2
  1456.                                    or CALL SWAP.PLAYERS.
  1457.  
  1458. |    PLAYER2.LAST.DATE.PLAYED$     The  last date  the  second  player
  1459.                                    played the door program.
  1460.  
  1461. |    PLAYER2.RUNG%                 The  second  player's  position  or
  1462.                                    RUNG on the challenge ladder.
  1463.  
  1464. |    POINTS.NAME$                  The  name for the value of the high
  1465.                                    score  as  shown  in the  bulletin.
  1466.                                    Default is "points".
  1467.  
  1468.  
  1469.  
  1470.  
  1471.                                      Page 19
  1472.  
  1473.  
  1474.  
  1475.       DoorPch - Version 3.7
  1476.      User's Guide for DOOR Programs
  1477.  
  1478.  
  1479.  
  1480.  
  1481. |    PRINT.USING$                  Populate  this  variable  with  the
  1482.                                    STRING expression containing format
  1483.                                    specifiers        when        using
  1484.                                    CALL PRINT.USING.
  1485.  
  1486.      PROGB$                        You  MUST  populate  this  variable
  1487.                                    with the name of your DOOR  program
  1488.                                    BEFORE the INCLUDE for  DOORPCH.BEG
  1489.                                    but    after   the   INCLUDE    for
  1490.                                    DOORPCH.USR.
  1491.  
  1492.                                    Example:  PROGB$ = "4CARD"
  1493.  
  1494.      PROGNAME$                     You  populate this string with  the
  1495.                                    literal name of your DOOR  program.
  1496.  
  1497.                                    Example:
  1498.                                          PROGNAME$ = "4 Card Solitare"
  1499.  
  1500. |    PROTOCOL$                     The  transfer protocol  used by the
  1501.                                    caller  (if  supported  by the  BBS
  1502.                                    software's  door  interface  file).
  1503.  
  1504.      R.ELEASE$                     Same  as above. The Release  number
  1505.                                    of your DOOR program.
  1506.  
  1507.                                    Example:  R.ELEASE$ = "v1.5"
  1508.  
  1509. |    RC$                           The  string  Return  Code  returned
  1510.                                    when using DoorPch's  Door Security
  1511.                                    System.
  1512.  
  1513.                                    Example:  RC$ = "REGISTERED"
  1514.  
  1515. |    RC%                           The  numeric  Return Code  returned
  1516.                                    when using DoorPch's  Door Security
  1517.                                    System.
  1518.  
  1519.                                    Example:  RC% = 1
  1520.  
  1521. |    RECORD.NUMBER#                The record number  of the caller in
  1522.                                    the BBS  software's  user  database
  1523.                                    (if supported by the BBS software's
  1524.                                    door interface file).
  1525.  
  1526.      RETURNCASE%                   If set to a 1 then ARG$ is returned
  1527.                                    in UPPER case.  If set to a -1 then
  1528.                                    ARG$ is returned in LOWER case.  If
  1529.                                    set  to a 0 then ARG$ is  returned,
  1530.                                    as keyed, unchanged.
  1531.  
  1532. |    RUNG%                         The  caller's position  or  RUNG on
  1533.                                    the challenge ladder.
  1534.  
  1535.  
  1536.  
  1537.                                      Page 20
  1538.  
  1539.  
  1540.  
  1541.       DoorPch - Version 3.7
  1542.      User's Guide for DOOR Programs
  1543.  
  1544.  
  1545.  
  1546.  
  1547. |    SCORES.NAME$                  The  name  for  the  value  of  the
  1548.                                    scores  as  shown in the  bulletin.
  1549.                                    Default is "Scores".
  1550.  
  1551.      SECONDS%                      Returned  by CALL to GETTIME.   The
  1552.                                    current SECONDS.
  1553.  
  1554. |    SECS.LEFT#                    The  number of seconds  the  caller
  1555.                                    has  left  in  the   door  program.
  1556.  
  1557. |    SECURITY.LEVEL%               The  security level  of the  caller
  1558.                                    (if supported by the BBS software's
  1559.                                    door interface file).
  1560.  
  1561. |    SERIAL.NUM$                   The  serial number  returned to you
  1562.                                    when using DoorPch's  Door Security
  1563.                                    System.
  1564.  
  1565.                                    Example:  SERIAL.NUM$ = "00123"
  1566.  
  1567.      SINCEMID#                     Returned  by CALL to  GETTIME.  The
  1568.                                    number of SECONDS since midnight.
  1569.  
  1570. |    SORT%                         If set to  1  the scores file  will
  1571.                                    be sorted when using CALL PUT.SCORE
  1572.                                    or  CALL HIGH.SCORE.  Default is  0
  1573.                                    when using  the  challenge  ladder.
  1574.  
  1575. |    SPONSOR$                      The   name  of   the   person   who
  1576.                                    sponsored  or  registered the door.
  1577.  
  1578. |    SUBSCRIPTION.DATE$            The subscription or expiration date
  1579.                                    of the caller  (if supported by the
  1580.                                    BBS software's door interface file).
  1581.  
  1582. |    SYMBOL$                       Populate  this  variable  with  the
  1583.                                    SYMBOL of the type variable used in
  1584.                                    LN$  when  using  CALL PRINT.USING.
  1585.  
  1586.                                    Example:
  1587.                                         SYMBOL$ = "$", "!", "%" or "#"
  1588.  
  1589.      SYSFIRST$                     The  FIRST name of the  SysOp  from
  1590.                                    the  ".CFG" file.  FIRST$  will  be
  1591.                                    populated  with  this   name   when
  1592.                                    SYSOP% = 1.
  1593.  
  1594.      SYSLAST$                      The LAST name of the SysOp from the
  1595.                                    ".CFG"   file.   LAST$   will    be
  1596.                                    populated  with this name when  the
  1597.                                    user record number is 1.
  1598.  
  1599.      SYSNAME$                      Populated  with  the name  of  YOUR
  1600.                                    BBS. Extracted from ".CFG" record 2.
  1601.  
  1602.  
  1603.                                      Page 21
  1604.  
  1605.  
  1606.  
  1607.       DoorPch - Version 3.7
  1608.      User's Guide for DOOR Programs
  1609.  
  1610.  
  1611.  
  1612.  
  1613.      SYSOP%                        If set to 1, indicates the SysOp is
  1614.                                    using the DOOR.
  1615.  
  1616. |    SYSOP.COMMENT$                PCBoard's  comment  about  the user
  1617.                                    left by the SysOp.
  1618.  
  1619.      TBSN%                         If set to a  value  greater than  1
  1620.                                    then  DoorPch   will   TAB  to  the
  1621.                                    specified TAB position.  Reset to 1
  1622.                                    after CALL.
  1623.  
  1624.      TDATE$                        Populate  this string with a  valid
  1625.                                    date (in this century).  The day of
  1626.                                    the year is returned in DAY%.   See
  1627.                                    GET.DAY SUB.
  1628.  
  1629. |    TIME.CALLED$                  The  time  the user called  the BBS
  1630.                                    (if supported by the BBS software's
  1631.                                    door interface file).
  1632.  
  1633. |    TIME.LAST.CALLED$             The  time the user  last called the
  1634.                                    BBS  (if  supported   by  the   BBS
  1635.                                    software's  door  interface  file).
  1636.  
  1637.      TIME.ON#                      The  elapsed time this call in  the
  1638.                                    DOOR in seconds.
  1639.  
  1640.      TIMESTART#                    The  time  the caller  entered  the
  1641.                                    DOOR in seconds.
  1642.  
  1643. |    TIMES.ON#                     The  number  of times  the user has
  1644.                                    called  the BBS  (if  supported  by
  1645.                                    the BBS software's  door  interface
  1646.                                    file).
  1647.  
  1648. |    TOTAL.DOORS.OPENED#           The total number  of doors the user
  1649.                                    has opened on the BBS (if supported
  1650.                                    by   the   BBS   software's    door
  1651.                                    interface file).
  1652.  
  1653. |    TOTAL.DOWNLOADED.K#           The  total number of  kilobytes the
  1654.                                    caller has  downloaded from the BBS
  1655.                                    (if supported by the BBS software's
  1656.                                    door interface file).
  1657.  
  1658. |    TOTAL.MSGS.LEFT#              The  total  number of  messages the
  1659.                                    caller  has  left  on the  BBS  (if
  1660.                                    supported  by  the  BBS  software's
  1661.                                    door interface file).
  1662.  
  1663. |    TOTAL.MSGS.READ#              The  total  number of  messages the
  1664.                                    caller  has  read  on the  BBS  (if
  1665.                                    supported  by  the  BBS  software's
  1666.                                    door interface file).
  1667.  
  1668.  
  1669.                                      Page 22
  1670.  
  1671.  
  1672.  
  1673.       DoorPch - Version 3.7
  1674.      User's Guide for DOOR Programs
  1675.  
  1676.  
  1677.  
  1678.  
  1679. |    TOTAL.UPLOADED.K#             The  total number of  kilobytes the
  1680.                                    caller has uploaded  to the BBS (if
  1681.                                    supported  by  the  BBS  software's
  1682.                                    door interface file).
  1683.  
  1684. |    UPLOADS#                      The number of  files the caller has
  1685.                                    uploaded to  the BBS  (if supported
  1686.                                    by   the   BBS   software's    door
  1687.                                    interface file).
  1688.  
  1689. |    USE.AT.CODES%                 Notifies DoorPch if the SysOp wants
  1690.                                    DoorPch to support  PCBoard v14.5's
  1691.                                    "@X" color macros.
  1692.  
  1693. |    USE.BASIC.COLORS%             If set to  1  then DoorPch will use
  1694.                                    the same  coloring method as BASIC.
  1695.  
  1696.                                    Example: 
  1697.                                      USE.BASIC.COLORS% = 1:  FGC% = 15
  1698.                                    is the same as FGC% = 7:  HIGH% = 1
  1699.  
  1700. |    USE.DSS%                      If set to  1 then the door will use
  1701.                                    DoorPch's   Door  Security  System.
  1702.                                    See also RC$, RC%, and SERIAL.NUM$.
  1703.  
  1704. |    USER.COMMENT$                 A comment  about the caller left by
  1705.                                    the  caller  (if  supported  by the
  1706.                                    BBS software's door interface file).
  1707.  
  1708.      USR.KY$                       The  variable  returned  when using
  1709.                                    CALL GET.INKEY and CALL GET.KEYLOOP.
  1710.  
  1711.      USR.NODE$                     The  BBS node  the user is calling.
  1712.  
  1713. |    WORKPHONE$                    The  work  telephone  number of the
  1714.                                    caller  (if supported  by  the  BBS
  1715.                                    software's  door  interface  file).
  1716.  
  1717.      XPOS%                         Used  to position the cursor.   Use
  1718.                                    only   when  doing  LOCATE   "type"
  1719.                                    logic.  XPOS% is the ROW number  (1
  1720.                                    to  23).   Your value is set  to  a
  1721.                                    NEGATIVE value once used.  You  may
  1722.                                    use it to determine the last  value
  1723.                                    you had set.
  1724.  
  1725.      YPOS%                         Same  as  XPOS% only for the COLUMN
  1726.                                    position (1 to 79).  Your value  is
  1727.                                    set to a NEGATIVE value once  used.
  1728.                                    You  may  use it to  determine  the
  1729.                                    last value you had set.
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.                                      Page 23
  1736.  
  1737.  
  1738.  
  1739.       DoorPch - Version 3.7
  1740.      User's Guide for DOOR Programs
  1741.  
  1742.  
  1743.  
  1744.  
  1745.      DoorPch Macros
  1746.      ==============
  1747.  
  1748.      The following macros may be used in files displayed when CALLing 
  1749.      READ.TXT(COLOR FILE,MONO FILE):
  1750.  
  1751.      Macro                         Definition
  1752.      -----------------------       ----------------------------------
  1753.  
  1754. |    @BEEP@                        sends a CTRL-G (ascii BELL character) to the
  1755.                                    caller but is not heard on the local machine
  1756.                                    unless the Caller Alarm is turned on
  1757.  
  1758. |    @BOARDNAME@                   Name of the BBS you are on
  1759.  
  1760. |    @BPS@                         Connect Speed
  1761.  
  1762. |    @BYTESLEFT@                   Daily D/L Bytes Left
  1763.  
  1764. |    @BYTELIMIT@                   Daily D/L Byte Limit
  1765.  
  1766. |    @BYTERATIO@                   Download BYTE ratio
  1767.  
  1768. |    @CITY@                        City
  1769.  
  1770. |    @CLS@                         Clear the entire screen
  1771.  
  1772. |    @CONFNUM@                     Conference Number Only
  1773.  
  1774. |    @DATAPHONE@                   Business/Data Phone
  1775.  
  1776. |    @DAYBYTES@                    Daily D/L Bytes
  1777.  
  1778. |    @DLBYTES@                     Total D/L Bytes
  1779.  
  1780. |    @DLFILES@                     Total D/L Files
  1781.  
  1782. |    @EVENT@                       Event Time
  1783.  
  1784. |    @EXPDATE@                     Expiration Date
  1785.  
  1786. |    @EXPDAYS@                     Days until Exp. Date
  1787.  
  1788. |    @FILERATIO@                   Download FILE ratio
  1789.  
  1790. |    @FIRST@                       First Name (first letter capitalized)
  1791.  
  1792. |    @FIRSTU@                      First Name (all caps)
  1793.  
  1794. |    @HANGUP@                      Hangs the caller up
  1795.  
  1796. |    @HOMEPHONE@                   Home/Voice Phone
  1797.  
  1798. |    @KBLEFT@                      K bytes left (= @BYTESLEFT@ / 1024)
  1799.  
  1800.  
  1801.                                      Page 24
  1802.  
  1803.  
  1804.  
  1805.       DoorPch - Version 3.7
  1806.      User's Guide for DOOR Programs
  1807.  
  1808.  
  1809.  
  1810.  
  1811. |    @KBLIMIT@                     K byte limit (= @BYTELIMIT@ / 1024)
  1812.  
  1813. |    @LASTDATEON@                  Last Date On
  1814.  
  1815. |    @LASTTIMEON@                  Last Time On
  1816.  
  1817. |    @MSGLEFT@                     Number of Messages Written
  1818.  
  1819. |    @NODE@                        Node Number
  1820.  
  1821. |    @NUMTIMESON@                  Number of Times On
  1822.  
  1823. |    @PRODESC@                     Default Protocol Description
  1824.  
  1825. |    @SECURITY@                    Security Level
  1826.  
  1827. |    @SYSDATE@                     Current Date
  1828.  
  1829. |    @SYSTIME@                     Current Time
  1830.  
  1831. |    @TIMELEFT@                    Time Left
  1832.  
  1833. |    @UPBYTES@                     Total U/L Bytes
  1834.  
  1835. |    @UPFILES@                     Total U/L Files
  1836.  
  1837. |    @USER@                        Full Name (all caps)
  1838.  
  1839.  
  1840.      Structure of a DOOR Program
  1841.      ===========================
  1842.  
  1843.      The following information provides a general overview of how  you
  1844.      construct  a DOOR program.  The process is very easy and you  can
  1845.      gain  a  lot  of insight by reviewing the example  DOOR  that  is
  1846.      provided in the "ZIP" file. The basic format of a DOOR program is
  1847.      as follows:
  1848.  
  1849.      Start of Program -----------------------------
  1850.  
  1851.      ' $INCLUDE: 'DOORPCH.USR'
  1852.        PROGNAME$ = "Example"    ' These
  1853.        PROGB$ = "EXAMPLE"       '       four
  1854.        R.ELEASE$ = "v1.0"       '            MUST
  1855.        NODE% = 1                '                 be populated.
  1856.        USE.DSS% = 1              ' These
  1857.        ANSI% = 1                 '       five
  1858.        EXTRA% = 1                '            may
  1859.        EXTRA1.NAME$ = "Mines"    '                be
  1860.        DOORPCH.SCORES% = 1       '                   populated.
  1861.      ' $INCLUDE: 'DOORPCH.BEG'    ' CALLs  INITIALIZATION  code   in
  1862.                                   ' DORPCH37.EXE.  If you  had  other
  1863.                                   ' information within.  DOORNAME.CFn,
  1864.                                   ' you  would continue  reading  the
  1865.                                   ' file here then immediately CLOSE #1.
  1866.  
  1867.  
  1868.                                      Page 25
  1869.  
  1870.  
  1871.  
  1872.       DoorPch - Version 3.7
  1873.      User's Guide for DOOR Programs
  1874.  
  1875.  
  1876.  
  1877.  
  1878.          .
  1879.          .   Your programs logic
  1880.          .
  1881.      ' $INCLUDE: 'DOORPCH.END'
  1882.  
  1883.      End of Program -------------------------------
  1884.  
  1885.  
  1886.      Include File Usage
  1887.      ==================
  1888.  
  1889.      The  "DOORPCH.USR" include file establishes the required  linkage
  1890.      for  all  variables  used  in  the  DoorPch  environment.   These
  1891.      variables  are used by you (the DOOR programmer)  to  communicate
  1892.      your needs to DoorPch.
  1893.  
  1894.      The "DOORPCH.BEG" include file calls the initialization  routines
  1895.      used  in  DoorPch  in  order  to  read  the  configuration  file,
  1896.      initialize variables, ready the COM port, etc.
  1897.  
  1898.      The  "DOORPCH.END"  include file provides a common set  of  error
  1899.      routines  and  a  set of conversion routines  for  accessing  the
  1900.      facilities  of DoorPch by Basic line numbers.  Note:  Two choices
  1901.      are available to you if you are upgrading from an earlier version
  1902.      of  DoorPch:  A) Leave your existing DOOR program coded  the  way
  1903.      you  originally coded it (IE: GOSUB 10170, GOSUB 10200  etc),  or
  1904.      B) Convert your existing DOOR program to use CALL statements thus
  1905.      eliminating the use of code in DOORPCH.END.
  1906.  
  1907.      New doors should utilize CALLs to perform DoorPch functions.
  1908.  
  1909.      Opening and Closing of Files
  1910.      ============================
  1911.  
  1912.      File  #1  is  left  OPEN  for  you.   You  may  add   records  to
  1913.      DOORNAME.CFn  if you wish after the mandatory  six records.  Once
  1914.      returned  from the Initialization code (DOORPCH.BEG),   you  must
  1915.      read  YOUR  records  from  File #1.  Then be sure  to  CLOSE  #1.
  1916.      Whether or not you read data from the ".CFG" file or not you MUST
  1917.      CLOSE #1.
  1918.  
  1919.      File  #2,  #3  and  #4  are reserved for use  by  DoorPch.  These
  1920.      files MUST NOT be used or a Doorpch fatal error most likely  will
  1921.      occur at some point in your programs execution.  You may start at
  1922.      File #5.
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.                                      Page 26
  1935.  
  1936.  
  1937.  
  1938.       DoorPch - Version 3.7
  1939.      User's Guide for DOOR Programs
  1940.  
  1941.  
  1942.  
  1943.  
  1944.      Starting a DOOR
  1945.      ===============
  1946.  
  1947.      A  run-time  parameter is required to invoke your  DOOR  program.
  1948.      Other  parameters  may  also  be passed  so  long  as  the  first
  1949.      parameter after the ".CFG" file name begins with a slash "/".  If
  1950.      a slash is  found  by DoorPch, the slash and all the  data  which
  1951.      follows it are available in the variable: PARAM$ (see below under
  1952.      VARIABLES).
  1953.  
  1954.         Example:
  1955.  
  1956.         4CARD 4CARD.CFG would invoke the program 4CARD.EXE passing
  1957.         parameter 4CARD.CFG to the program.  The contents of the
  1958.         ".CFG" file are:
  1959.  
  1960.         C:\PCB\PCBOARD.SYS   <=== The location of BBS interface file
  1961.         The Pegasus BBS      <=== Your BBS name goes here
  1962.         Raymond              <=== SysOps FIRST name
  1963.         Clements             <=== SysOps LAST name
  1964.         Sondra Clements      <=== DOOR Sponsor's name
  1965.  
  1966.         Note: File #1 is left  OPEN.  You may add records to this file
  1967.         if you need to pass additional information to your DOOR
  1968.         program.  Remember to CLOSE #1 so it will work properly with a
  1969.         network.
  1970.  
  1971.  
  1972.      Terminating a DOOR
  1973.      ==================
  1974.  
  1975.      How to terminate the DOOR.  Be certain all YOUR files (not  those
  1976.      used by Doorpch) are CLOSEed.  Then simply do the following:
  1977.  
  1978.          CALL EXITG
  1979.  
  1980.      You  will not be returned from this SUB routine.  The  DOOR  will
  1981.      terminate within DoorPch code.
  1982.  
  1983.  
  1984.      Compiling Your DOOR Program
  1985.      ===========================
  1986.  
  1987.      A BATch file is included  (COMPILE.BAT).  Execute this batch file
  1988.      with your source module as a parameter.
  1989.  
  1990.             Example:  COMPILE 4CARD.BAS
  1991.  
  1992.      When  the batch file ends you will have an OBJect module  present
  1993.      in your current directory.
  1994.  
  1995.  
  1996.  
  1997.  
  1998.  
  1999.  
  2000.                                      Page 27
  2001.  
  2002.  
  2003.  
  2004.       DoorPch - Version 3.7
  2005.      User's Guide for DOOR Programs
  2006.  
  2007.  
  2008.  
  2009.  
  2010.      Linking Your DOOR Program
  2011.      =========================
  2012.  
  2013.      A  BATch file is included  (LINKER.BAT).  Execute this  batch file
  2014.      with your OBJect module as a parameter.
  2015.  
  2016.               Example:  LINKER 4CARD.OBJ
  2017.  
  2018.      When  the  batch  file ends you will have  an  EXEcutable  module
  2019.      present in your current directory.
  2020.  
  2021.      >>  Be careful here: Giving the linker the name of
  2022.          your  SOURCE module will cause a LINK  failure
  2023.          and the SOURCE module will be DESTROYED.   You
  2024.          may   wish  to  save  your  source  prior   to
  2025.          executing this BATch file.
  2026.  
  2027.  
  2028.      Executing Your DOOR Program
  2029.      ===========================
  2030.  
  2031.      Your  new  .EXE  module now contains all the  necessary  code  to
  2032.      function  as  a DOOR.  The .EXE module  requires  the  QuickBASIC
  2033.      run-time   routines  from  Microsoft  (BRUN30.EXE)   be   present
  2034.      somewhere  in the PATH when you execute your DOOR program.    You
  2035.      must also have a DOS Environment variable set for       Doorpch's
  2036.      use.  Place this statement in your AUTOEXEC.BAT   file:
  2037.  
  2038.               Example: SET DOORPCH=PCB (for compatibility with prior
  2039.                                         versions of DoorPch)
  2040.  
  2041.      Finally,  since  DORPCH37.EXE is a QuickBASIC  3.0  LIBRARY,  you
  2042.      should set an environment variable telling  DOS where to find it.
  2043.  
  2044.      Example:  SET LIB=<path to DORPCH37.EXE>
  2045.  
  2046.      A small example of a DOOR program is included in the DORPCH37.ZIP
  2047.      file:  EXAMPLE.BAS.  You can look this program over for  examples
  2048.      of many of the Doorpch functions.
  2049.  
  2050.  
  2051.      Programming Tips
  2052.      ================
  2053.  
  2054.      ANSI Colors Graphics
  2055.      ====================
  2056.  
  2057.      The  following  information outlines the use of  various  Doorpch
  2058.      variables    to   control   the   foreground/background    color,
  2059.      highlighting, and blinking capabilities.
  2060.  
  2061.  
  2062.  
  2063.  
  2064.  
  2065.  
  2066.                                      Page 28
  2067.  
  2068.  
  2069.  
  2070.       DoorPch - Version 3.7
  2071.      User's Guide for DOOR Programs
  2072.  
  2073.  
  2074.  
  2075.  
  2076.      Intensity of Text
  2077.      -----------------
  2078.  
  2079.      In order for any text you wish to display to be in high intensity,
  2080.      simply set the  variable HIGH% = 1.  Setting the same variable to
  2081.      0 (zero) will display in low intensity.
  2082.  
  2083.  
  2084.      Blinking Text
  2085.      -------------
  2086.  
  2087.      In  order   for  any text you  wish to display  to  be  blinking,
  2088.      simply set the variable BLINK% = 1.  Setting the same variable to
  2089.      0 (zero) will turn off the blinking attribute.
  2090.  
  2091.  
  2092.      Foreground/Background Colors
  2093.      ----------------------------
  2094.  
  2095.      To  modify the colors that your text displays in, simply set  the
  2096.      two variables FGC% or BGC% to one of the values in the  following
  2097.      table for the desired effect:
  2098.  
  2099.  
  2100.             1 for RED             /
  2101.             2 for GREEN         /
  2102.        *    3 for YELLOW      /
  2103.             4 for BLUE       <== Corresponds to ANSI codes
  2104.             5 for MAGENTA     \
  2105.             6 for CYAN          \
  2106.             7 for WHITE           \
  2107.      (*) - defaults
  2108.  
  2109.  
  2110.      Printing Output
  2111.      ===============
  2112.  
  2113.      Printing a Complete Line
  2114.      ------------------------
  2115.  
  2116.        To write to the COM port a complete line of text:
  2117.  
  2118.        Place your text in LN$ and CALL OUT.PUT
  2119.  
  2120.        To center the text all you need to do is make
  2121.        CENTER% = 1 then CALL OUT.PUT.  The required
  2122.        spaces will be added to center your text.
  2123.  
  2124.  
  2125.  
  2126.  
  2127.  
  2128.  
  2129.  
  2130.  
  2131.  
  2132.                                      Page 29
  2133.  
  2134.  
  2135.  
  2136.       DoorPch - Version 3.7
  2137.      User's Guide for DOOR Programs
  2138.  
  2139.  
  2140.  
  2141.  
  2142.      Printing a Partial Line
  2143.      -----------------------
  2144.  
  2145.      To write to the COM port a partial line of text holding
  2146.      the cursor at the end of the printed text:
  2147.  
  2148.      Place your text in LN$ and CALL OUT.NCR.
  2149.  
  2150.      Example: To print a red "Hi" and a yellow " There"
  2151.  
  2152.         FGC% = 1: LN$ = "Hi": CALL OUT.NCR
  2153.         FGC% = 3: LN$ = " There": CALL OUT.PUT
  2154.  
  2155.  
  2156.      Printing a Line & Get a Response
  2157.      --------------------------------
  2158.  
  2159.      Place your text in LN$ and CALL IN.PUT.  Your response will be in
  2160.      ARG$.  Setting RETURNCASE% to 1 will result in the response being
  2161.      returned in UPPER case.  Setting this value to -1 (minus 1)  will
  2162.      return a response in LOWER case.  Setting the value to  0  (zero)
  2163.      will  return  the  response  as  keyed  without  conversion.  The
  2164.      DEFAULT is  RETURNCASE% = 1.  If you set it to  zero or minus one
  2165.      (-1) it will be reset to 1 on the next CALL to IN.PUT.
  2166.  
  2167.  
  2168.         Example:
  2169.  
  2170.         RETURNCASE% = -1
  2171.  
  2172.         LN$ = "Are you finished ? ": CALL IN.PUT
  2173.         IF ARG$ = "y" then do something...
  2174.  
  2175.  
  2176.      Printing with TABs
  2177.      ------------------
  2178.  
  2179.         To print at a TAB position: Set TBSN% to your TAB value.
  2180.  
  2181.         Example:
  2182.  
  2183.         TBSN% = 50: LN$ = "Howdy": CALL OUT.PUT
  2184.         The above would print beginning in column 50.
  2185.  
  2186.  
  2187.      Ringing the BELL
  2188.      ================
  2189.  
  2190.      Please  do not WAKE UP the SYSOP! If your DOOR program  needs  to
  2191.      ring  the bell, please do it this way !  Set BELL% = 1.  The bell
  2192.      will  not  be sent to the console unless the door is  running  in
  2193.      LOCAL mode.
  2194.  
  2195.      Example: LN$ = "Ooops!": BELL% = 1: CALL OUT.PUT
  2196.  
  2197.  
  2198.                                      Page 30
  2199.  
  2200.  
  2201.  
  2202.       DoorPch - Version 3.7
  2203.      User's Guide for DOOR Programs
  2204.  
  2205.  
  2206.  
  2207.  
  2208.      Adding Color the Easy Way
  2209.      =========================
  2210.  
  2211.      With DoorPch Version 3.7 comes a new way to generate those  fancy
  2212.      color  displays.  A CALL to COLOR.CHK will colorize  anything  in
  2213.      LN$. You must first set the foreground (FGC%) and the  background
  2214.      (BGC%).  Then  load LN$ with data, and make the  CALL.   Anything
  2215.      contained  between [,(,< and >,),] will be  colorized.
  2216.  
  2217.         The following rules apply for colorizing:
  2218.  
  2219.         A.   If CENTER% = 1 the text will be centered.
  2220.         B.   If BLINK% = 1 then all text inside of the delimiters
  2221.              <>, [], or  () will be blinking.
  2222.         C.   Numbers will be RED unless FGC% = 1 (red) then
  2223.              numbers will be BLUE.
  2224.         D.   Uppercase characters will be CYAN unless FGC% = 6
  2225.              (cyan) then they will be YELLOW.
  2226.         E.   Lowercase will be GREEN unless FGC% = 2 (green)
  2227.              then lowercase will be MAGENTA.
  2228.  
  2229.      The  COLOR.CHK SUB will output characters but will NOT  line feed.
  2230.      You must CALL OUT.PUT to get a line feed.
  2231.  
  2232.  
  2233.      Sending ANSI Music
  2234.      ==================
  2235.  
  2236.      Place  your ANSI music characters in MUSIC$ and CALL  MUSICG.  No
  2237.      control  codes or escapes sequences are put in MUSIC$,  just  raw
  2238.      notes  and QuickBASIC music codes.  DoorPch will handle and  load
  2239.      the  ANSI  sequences needed to make your music  work  locally  or
  2240.      remotely.  All  notes will be converted to uppercase.   Refer  to
  2241.      your  QuickBASIC manual and use only the data that  is  contained
  2242.      between  the quotes.  Doorpch will handle the  PLAY  and  VARPTR$
  2243.      commands.
  2244.  
  2245.         Ask your users:
  2246.  
  2247.         Can you handle music [Y/n]?
  2248.  
  2249.         If yes, then populate MUSIC$ with your music and CALL MUSICG.
  2250.  
  2251.         Note: Music will NOT be played to the local console if the
  2252.         system is in a NETWORK and the DOOR is in LOCAL mode.  Some
  2253.         network servers cannot handle background music being played.
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264.                                      Page 31
  2265.  
  2266.  
  2267.  
  2268.       DoorPch - Version 3.7
  2269.      User's Guide for DOOR Programs
  2270.  
  2271.  
  2272.  
  2273.  
  2274.         Example:
  2275.  
  2276.         FGC% = 2: LN$ = "Can your system handle music [Y/n] ? "
  2277.         CALL COLOR.CHK: CALL GET.KEYECHO
  2278.         IF ARG$ = "Y" THEN
  2279.            .
  2280.            .your music logic
  2281.            .
  2282.         ELSE
  2283.            .
  2284.            .No music logic
  2285.            .
  2286.         END IF
  2287.  
  2288.  
  2289.      Bell, Alarm or Local Music Toggles
  2290.      ==================================
  2291.  
  2292.         If LOCAL.MUSIC% = 1 then F3 has been toggled ON.
  2293.         If PAGEBELL% = 1 then F4 has been togged ON.
  2294.         If CALLALARM% = 1 then F7 has been toggled ON.
  2295.  
  2296.  
  2297.      Clearing the Screen
  2298.      ===================
  2299.  
  2300.         Clear the local and callers screen and refresh LINES 24/25 of
  2301.         the local console:
  2302.  
  2303.         CALL CLR.SCRN
  2304.  
  2305.  
  2306.      BASIC Keywords
  2307.      ==============
  2308.  
  2309.      The following BASIC keywords should NEVER be used in a DOOR  that
  2310.      you  write.   Unpredictable  results are certain if  you  do  NOT
  2311.      follow the rules outlined in this document.
  2312.  
  2313.      Never use any of the following BASIC verbs:
  2314.  
  2315.          LOCATE,  PRINT,  VIEW PRINT,  PRINT USING, CLS,  COLOR,
  2316.          DRAW,  END,  INKEY$,  KEY,  ON COM,  OPTION BASE,  PAINT,
  2317.          PEN,  PLAY,  POS(0),  CSRLIN,  RESUME,  RUN,  SCREEN,
  2318.          SHELL,  SOUND,  STICK,  STRIG,  SYSTEM,  WIDTH,  WINDOW
  2319.  
  2320.          There may be others . . .
  2321.  
  2322.  
  2323.      High Scores & Bulletins
  2324.      =======================
  2325.  
  2326.      Load  PROGB$  with your Door program's name  excluding  the(exe).
  2327.      Put this before the INCLUDE of DOORPCH.BEG.
  2328.  
  2329.  
  2330.                                      Page 32
  2331.  
  2332.  
  2333.  
  2334.       DoorPch - Version 3.7
  2335.      User's Guide for DOOR Programs
  2336.  
  2337.  
  2338.  
  2339.  
  2340.      Example:  PROGB$="4CARD"
  2341.  
  2342.      Keep track of your high score in a variable:  HSCR#.
  2343.  
  2344.      Prior  to  doing  the  CALL  EXITG  or  doing  GOSUB   10410, CALL
  2345.      HIGH.SCORE.  All  game information  will be included in this file.
  2346.      The location  of an  optional bulletin  is also contained therein.
  2347.  
  2348.      The SysOp must  initialize the door  (if DOORPCH.SCORES% <> 0)  by
  2349.      using    the   /CREATE   command  (ie. DP37Util 4CARD.SCR /CREATE)
  2350.      The SysOp  will  be  asked  various  questions  to  initialize the
  2351.      high.score/bulletin generator.  A text editor can be used to add a
  2352.      bulletin name at a later time.  The former is the preferred method.
  2353.  
  2354.  
  2355.      SysOp Information
  2356.      =================
  2357.  
  2358.      Lines 24 & 25 of the Display
  2359.      ----------------------------
  2360.  
  2361.          The information on this line is obtained from the BBS interface
  2362.          file(s).  Listed below is the information provided.
  2363.  
  2364.          (*** Default Screen ***)
  2365.          A. Node number (if in a network).
  2366.          B. The baud rate of the caller.
  2367.          C. Caller's name.
  2368.          D. The name of the DOOR program and its release number.
  2369.          E. The amount of free memory remaining.
  2370.          F. The number of minutes the caller has used in the DOOR.
  2371.          G. If the ALT-N or ALT-X keys have been toggled, then the
  2372.             indicator will be displayed similarly to PCBoard.
  2373.          H. The time the caller entered the DOOR.
  2374.          I. The graphics mode of the caller.
  2375.          J. The last date the caller called.
  2376.          K. The security level of the caller and the conference the
  2377.             caller exited from into the DOOR program.
  2378.          L. The number of times the caller has called.
  2379.          M. The number of files the caller has uploaded & downloaded.
  2380.          N. The alarm toggle, page bell toggle and local music toggle.
  2381.          O. The amount of free string space remaining.
  2382.          P. The number of minutes the caller has left in the DOOR.
  2383.          Q. The current time.
  2384.  
  2385.          (*** ALT-H pressed one time ***)
  2386.          A. The extended key meanings help screen.
  2387.  
  2388.          (*** ALT-H pressed two times ***)
  2389.          A. The caller's business & home telephone numbers.
  2390.          B. The expiration date of the caller.
  2391.          C. The password of the caller.
  2392.          D. The user comment.
  2393.          E. The SysOp comment.
  2394.  
  2395.  
  2396.                                      Page 33
  2397.  
  2398.  
  2399.  
  2400.       DoorPch - Version 3.7
  2401.      User's Guide for DOOR Programs
  2402.  
  2403.  
  2404.  
  2405.  
  2406.          (*** ALT-H pressed three times ***)
  2407.          A. The number of total messages left by the caller.
  2408.          B. The number of total files uploaded by the caller.
  2409.          C. The number of total bytes uploaded by the caller.
  2410.          D. The number of total messages read by the caller.
  2411.          E. The number of total files downloaded by the caller.
  2412.          F. The number of total bytes downloaded by the caller.
  2413.          G. The number of total bytes downloaded today by the caller.
  2414.  
  2415.          (*** ALT-H pressed four times ***)
  2416.          A.-C. The same as the default screen.
  2417.          D. The city & state of the caller.
  2418.          E.-Q. The same as the default screen.
  2419.  
  2420.  
  2421.      Extended Key Meanings
  2422.      ---------------------
  2423.  
  2424.          The keys listed below will cause various values to be
  2425.          displayed on lines 24 & 25 of the local console:
  2426.  
  2427.          A. F1 key:    Displays the version of DOORPCH compiled and linked
  2428.                        into the DOOR.
  2429.          B. F2 key:    Displays a caller's Alias if one is used via the DOOR.
  2430.          C. F3 key:    Toggles Local Music ON/OFF.
  2431.          D. F4 key:    Toggles the Bell ON/OFF.  Value is returned to BBS when
  2432.                        DOOR completes.
  2433.          E. F5 key:    DOS Shell.  Allows the SysOp to exit to DOS from inside
  2434.                        a DOOR.
  2435.          F. F6 key:    Toggles the Graphics mode of the caller.
  2436.          G. F7 key:    Toggle the alarm ON/OFF.  Value is returned to BBS when
  2437.                        DOOR completes.
  2438.          H. F8 key:    Returns the caller involuntarily to the BBS.
  2439.          I. F9 key:    Toggles the display ON/OFF.  Value is returned to BBS
  2440.                        when DOOR completes.
  2441.          J. F10 key:   Activates SysOp / Caller CHAT mode within the DOOR.
  2442.          K. ESC key:   Deactivates CHAT mode.  DOOR is resumed.
  2443.          L. ALT-H key: HELP key for lines 24 & 25 capabilities.
  2444.          M. UP key:    Allows the SysOp to add additional time for the caller.
  2445.                        Value is returned to BBS when DOOR completes.
  2446.          N. DN key:    Allows the SysOp to subtract time from the caller.
  2447.                        Value is returned to BBS when DOOR completes.
  2448.          O. ALT-N key: Some BBSs use SysOp next on control/indicator.
  2449.                        Value is returned to BBS when DOOR completes.
  2450.          P. ALT-X key: Some BBSs will exit after current caller completes their
  2451.                        session.  Value is returned to BBS when DOOR completes.
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457.  
  2458.  
  2459.  
  2460.  
  2461.  
  2462.                                      Page 34
  2463.  
  2464.  
  2465.  
  2466.       DoorPch - Version 3.7
  2467.      User's Guide for DOOR Programs
  2468.  
  2469.  
  2470.  
  2471.  
  2472.      DoorPch History
  2473.      ===============
  2474.  
  2475.      Originally  Clint  Labarthe  wrote  the  1st  version of Doorpch.
  2476.      He saw a piece of code for  RBBS  DOORs and felt  he could use it
  2477.      as a foundation for  PCBoard  DOORs.  This  was the  beginning of
  2478.      DoorPch v1.0.
  2479.  
  2480.      He quickly saw  missing features  and  bugs  and on to  v1.1  and
  2481.      so on until  v2.6.  Actually along the way  he had a lot of  help
  2482.      from a lot of  SysOps.  Some were  Beta Testers.  Others gave him
  2483.      inspiration while others actually provided code.   At the moment,
  2484.      two SysOps  participated in the  coding of  Doorpch  v3.5:  Clint
  2485.      Labarthe and Terry Shockley.  Raymond Clements was  very  helpful
  2486.      while the code was still in a QuickBASIC 3.0 source format.
  2487.  
  2488.      Then,  Ben Perron restructured the code  for  QuickBASIC 3.0 lib-
  2489.      raries.  Pat Carone was an early beta-tester.  Who knows how much
  2490.      these fine SysOps spent on long distance charges.  You can bet is
  2491.      was a bundle.  Many thanks to them!!
  2492.  
  2493.      Between v3.6 and v3.7  Raymond Clements  took over sole ownership
  2494.      of DoorPch.
  2495.  
  2496.      Why a LIBRARY and NOT source code as in v2.6?  That's a very good
  2497.      question.   SysOps simply made too many modifications.  Some were
  2498.      given to friends.  And so it went.  This code is  not  an attempt 
  2499.      to halt that  type  of creativity.  Rather, it is to set the DOOR
  2500.      standard.  If you wish specific logic added that is not currently
  2501.      in v3.7, please let us know.  Incorporated in v3.7 are many, many
  2502.      hours of work and the ideas of  countless  SysOps from around the
  2503.      world.  Its the best we could do at this point.
  2504.  
  2505.      That is where we are today. It is a full functional, full feature
  2506.      LIBRARY for you to LINK your DOOR program too.  We don't ask much
  2507.      in return.  A form is provided for you to at least tell us who is
  2508.      using  it  and provide a contribution of sorts.  I can  tell  you
  2509.      this:  You won't get rich on DOORs.  We will NOT get rich on you.
  2510.      We all benefit from each other.
  2511.  
  2512.  
  2513.      DoorPch Credits
  2514.      ===============
  2515.  
  2516.      Thanks to  Andy McPhee  at Pacific Bell in  California.  He  was 
  2517.      Clint's  supervisor during  his  first  coding  assignments.  He
  2518.      once  told  Clint: "If  you can think of it, you  can  code it!".
  2519.      Well, to all of you  SysOps and to you Andy, here  it is!  We did
  2520.      just that!
  2521.  
  2522.      Thanks to  Ben Perron  who created the first DoorPch  library for
  2523.      v3.1 using the  DoorPch v2.6  source code  as the  basis  for the
  2524.      implementation.  Without Ben's  extra  effort,  DoorPch would not
  2525.      be at the level it is at today.
  2526.  
  2527.  
  2528.                                      Page 35
  2529.  
  2530.  
  2531.  
  2532.       DoorPch - Version 3.7
  2533.      User's Guide for DOOR Programs
  2534.  
  2535.  
  2536.  
  2537.  
  2538.      Thanks  to  Dick  Stout  of  Computer  Technology  who  did  much
  2539.      alpha/beta testing.  His system crashed so yours  would not.  All
  2540.      of his reported  errors were  corrected.  This lead to an  almost
  2541.      bug free crash proof environment.
  2542.  
  2543.      Thanks  to Mark Fletcher who was inspirational in  the  beginning
  2544.      and  thereafter  provided code during the early going.   He  kept
  2545.      the faith and used Doorpch from the beginning.
  2546.  
  2547.      Thanks  to  Jerry Fields in Georgia for  sacrificing  his  system
  2548.      also.  Many of the SysOps simply could not wait for the  finished
  2549.      product.  Jerry  was   one  of  them.  We  sure   appreciate  his
  2550.      enthusiasm.
  2551.  
  2552.      Thanks also to Bud Napier in Massachusetts who kept the  pressure
  2553.      on  and was willing to provide a beta site even with bugs in  our
  2554.      code.
  2555.  
  2556.      A special thanks to Harold Thomson, a colleague of Clint at AT&T,
  2557.      who wrote a myriad of assembler routines to assist us.
  2558.  
  2559.      Thanks  also to  Terry Shockley and Charlie Wooster, AT&T  SysOps
  2560.      of  the  Deathstar  BBS, for their  assistance  and  constructive
  2561.      reasoning during v3.5 development.
  2562.  
  2563.      Thanks to Richard Driggers, SysOp of Sparta BBS in New Jersey for
  2564.      his belief in us.  His dedication  to the  betterment of  BBS'ing
  2565.      gave us cause to continue our work.  He provided a  rich test bed
  2566.      also.  Our hats goes off to him.
  2567.  
  2568.      I'd like to thank  Phil DeWitt,  Curtis Kowalski,  Thomas Pullens
  2569.      and  Andy Keeves,   for   contributing   various  routines  which
  2570.      were added during the coding of  DoorPch  v3.7.  I'd also like to
  2571.      thank  David Terry  and  Fred Clark  for all of their help!
  2572.  
  2573.      I'd also like to thank all of the people whose suggestions I used
  2574.      to help make this v3.7 the best version of DoorPch so far and all
  2575.      of the SysOps who helped beta test DoorPch v3.7 and most of all I
  2576.      would like to thank my wife, Sondra Clements, for putting up with
  2577.      me while I was working on DoorPch v3.7.
  2578.  
  2579.  
  2580.      Reporting Problems
  2581.      ==================
  2582.  
  2583.      If you require assistance beyond the instructions contained
  2584.      herein, please call one of our BBS's:
  2585.  
  2586.      BBS                         Phone               SysOp
  2587.      ----------------------------------------------------------------
  2588.      The Pegasus BBS - node #1   (502)684-9855       Raymond Clements
  2589.      The Pegasus BBS - node #2   (502)684-9871 HST   Raymond Clements
  2590.  
  2591.  
  2592.  
  2593.  
  2594.                                      Page 36
  2595.  
  2596.  
  2597.  
  2598.       DoorPch - Version 3.7
  2599.      User's Guide for DOOR Programs
  2600.  
  2601.  
  2602.  
  2603.  
  2604.      User Enhancement Requests
  2605.      =========================
  2606.  
  2607.      If  you  find that a function is not present in Doorpch  and  you
  2608.      feel this enhancement would benefit others, then please provide a
  2609.      Change  Request  (CR)  to us in the following  format.   We  will
  2610.      attempt to incorporate your request a subsequent release.
  2611.  
  2612.      Change Request (CR):
  2613.  
  2614.      Date:
  2615.      Author:
  2616.      Description of enhancement: <Pseudo code, structured English
  2617.                                   narrative or actual BASIC code>
  2618.  
  2619.      If you have a working model of the code and wish to share it with
  2620.      us, then by all means provide it.  You may submit your request in
  2621.      two  ways: 1) uploading to one of our BBS's as a  PRIVATE  upload
  2622.      and leaving a  [C]omment identifying  the upload  to the SysOp or
  2623.      2) mailing your request to our address:
  2624.  
  2625.                              Raymond Clements
  2626.                              2204 Carriage Dr.
  2627.                              Owensboro, KY  42301-5823
  2628.  
  2629.      Enjoy Doorpch v3.7!!
  2630.  
  2631.  
  2632.      DoorPch Registration
  2633.      ====================
  2634.  
  2635.      The DoorPch  source/library code is distributed for your use on a
  2636.      trial  basis.  If  you decide to utilize it in  a  DOOR  program,
  2637.      you  are  asked to register your  copy.   We  feel a registration
  2638.      fee  of $10.00 is reasonable.  However,  any  amount  from $10 to
  2639.      $10,000,000 will be accepted. <grin>
  2640.  
  2641.      We'd like to thank you for using  DoorPch.  We hope its as useful
  2642.      to you as it has been for us.  Any  and  all suggestions  can  be
  2643.      mailed  to the  address  below  or  directly  conveyed  to us  on
  2644.      The Pegasus BBS at (502)684-9855 or (502)684-9871 HST.
  2645.  
  2646.      This  code will work without alteration with QuickBASIC 3.0  com-
  2647.      piled programs.  If you have a request for  improvements/enhance-
  2648.      ments or  detect a bug,  please let us know.  We will make  every
  2649.      effort to get the code changed thus helping all of us make better
  2650.      DOORs.
  2651.  
  2652.      When you  register DoorPch  your registration information will be
  2653.      added into a database on The Pegasus BBS.  You'll then be able to
  2654.      call and create your own registered DOORPCH.SYS file by using the
  2655.      DOOR SECURITY SYSTEM door  in  the  SysOp (#1) conference.  Place
  2656.      that file in your "SET LIB=" directory and  DoorPch will then say
  2657.      it's registered to you.
  2658.  
  2659.  
  2660.                                      Page 37
  2661.  
  2662.  
  2663.  
  2664.       DoorPch - Version 3.7
  2665.      User's Guide for DOOR Programs
  2666.  
  2667.  
  2668.  
  2669.  
  2670.        TO:  Raymond Clements                           Date___/___/___ 
  2671.             DoorPch Registration
  2672.             2204 Carriage Dr.
  2673.             Owensboro, KY  42301-5823
  2674.  
  2675.  
  2676.             **********************************************************
  2677.             *  *TYPE* THIS EXACTLY AS YOU WANT IT TO APPEAR ON THE   *
  2678.             *  ENDING SCREEN OF DOORPCH v3.7 INCLUDING ANY AND ALL   *
  2679.             *  UPPERCASE LETTERS, LOWERCASE LETTERS AND PUNCTUATION. *
  2680.             **********************************************************
  2681.  
  2682.  
  2683.      FROM:  SysOp Name: ______________________________________________
  2684.  
  2685.             BBS Name: ________________________________________________
  2686.  
  2687.             Address: _________________________________________________ 
  2688.  
  2689.             City: _______________________ State: _____ Zip: __________
  2690.  
  2691.             Voice #: (    )______________ BBS #: (    )_______________
  2692.  
  2693.             BBS Software & Version: ________________ BBS Hours: ______
  2694.  
  2695.  
  2696.      Trademarks / Copyrights
  2697.      =======================
  2698.  
  2699.      DoorPch (C) is Copyrighted by Raymond Clements, 1987 - 1991
  2700.  
  2701.      PCBoard (R) is a registered trademark of Clark Development Co. (CDC)
  2702.  
  2703.      GAP Communications (C) is Copyrighted by GAP Development Co., 1987 - 1991
  2704.  
  2705.      RBBS-PC (C) is Copyrighted by Thomas Mack, 1983 - 1991
  2706.  
  2707.      Spitfire (C) is Copyrighted by Mike Woltz, 1987 - 1991
  2708.  
  2709.      WILDCAT! (C) is Copyrighted by Mustang Software, 1987 - 1991
  2710.  
  2711.      Microsoft (R) is a registered trademark of Microsoft Corp.
  2712.  
  2713.      DOS (MS-DOS) (R) is a registered trademark of Microsoft Corp.
  2714.  
  2715.      BRUN30.EXE (C) is Copyrighted by Microsoft Corp., 1987
  2716.  
  2717.   
  2718.  
  2719.  
  2720.  
  2721.  
  2722.  
  2723.  
  2724.  
  2725.  
  2726.                                     Page 38
  2727.  
  2728.  
  2729.